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.
112 lines
3.0 KiB
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,
|
|
),
|
|
),
|
|
),
|
|
);
|
|
}
|
|
} |