You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
doctor_app_flutter/lib/utils/tab_utils.dart

112 lines
3.0 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import '../config/config.dart';
import '../config/size_config.dart';
import '../core/viewModel/project_view_model.dart';
import '../widgets/shared/app_texts_widget.dart';
class TabUtils {
static getBoxTabsBoxDecoration(
{bool isFirst = false,
bool isMiddle = false,
bool isLast = false,
bool isActive = false,
double radius = 6.0,
ProjectViewModel projectViewModel}) {
return BoxDecoration(
color: isActive ? AppGlobal.appRedColor : Color(0xFFEAEAEA),
shape: BoxShape.rectangle,
borderRadius: BorderRadius.only(
topRight: projectViewModel.isArabic
? Radius.circular(isActive
? isLast || isMiddle
? radius
: 0
: 0)
: Radius.circular(isActive
? isFirst || isMiddle
? radius
: 0
: 0),
topLeft: projectViewModel.isArabic
? Radius.circular(isActive
? isFirst || isMiddle
? radius
: 0
: 0)
: Radius.circular(isActive
? isLast || isMiddle
? radius
: 0
: 0),
bottomRight: projectViewModel.isArabic
? Radius.circular(isActive
? isLast || isMiddle
? radius
: 0
: 0)
: Radius.circular(isActive
? isFirst || isMiddle
? radius
: 0
: 0),
bottomLeft: projectViewModel.isArabic
? Radius.circular(isActive
? isFirst || isMiddle
? radius
: 0
: 0)
: Radius.circular(isActive
? isLast || isMiddle
? radius
: 0
: 0)),
);
}
static getBgTabColor() {
return Color(0xFFEAEAEA);
}
static getTabText({
String title,
bool isActive = false,
}) {
return AppText(
title,
fontSize: SizeConfig.textMultiplier * 1.8,
color: isActive ? Colors.white : AppGlobal.appTextColor,
letterSpacing: -0.48,
fontWeight: FontWeight.w600,
);
}
static getTabHeight(BuildContext context) {
final screenSize = MediaQuery.of(context).size;
return screenSize.height * 0.07;
}
static getTabCounter({bool isActive: false, int counter}) {
return Container(
margin: EdgeInsets.all(4),
width: 15,
height: 15,
decoration: BoxDecoration(
color: isActive ? Colors.white : AppGlobal.appRedColor,
shape: BoxShape.circle,
),
child: Center(
child: FittedBox(
child: AppText(
"$counter",
fontSize: SizeConfig.textMultiplier * 1.5,
color: !isActive ? Colors.white : AppGlobal.appRedColor,
fontWeight: FontWeight.w700,
),
),
),
);
}
}