|
|
|
|
@ -1,8 +1,8 @@
|
|
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
|
import 'package:provider/provider.dart';
|
|
|
|
|
import 'package:test_sa/controllers/providers/api/user_provider.dart';
|
|
|
|
|
import 'package:test_sa/controllers/providers/settings/setting_provider.dart';
|
|
|
|
|
import 'package:test_sa/extensions/context_extension.dart';
|
|
|
|
|
import 'package:test_sa/extensions/int_extensions.dart';
|
|
|
|
|
import 'package:test_sa/extensions/text_extensions.dart';
|
|
|
|
|
import 'package:test_sa/extensions/widget_extensions.dart';
|
|
|
|
|
import 'package:test_sa/models/enums/user_types.dart';
|
|
|
|
|
@ -17,8 +17,17 @@ class AppBottomNavigationBar extends StatelessWidget {
|
|
|
|
|
@override
|
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
|
bool isEngineer = (Provider.of<UserProvider>(context, listen: false).user?.type) == UsersTypes.engineer;
|
|
|
|
|
bool isUserFMS = Provider.of<SettingProvider>(context, listen: false).isUserFMS;
|
|
|
|
|
|
|
|
|
|
List<NavItemModel> navItems = [
|
|
|
|
|
NavItemModel(0, "overview", context.translation.overview),
|
|
|
|
|
NavItemModel(1, "request_icon", context.translation.workOrder),
|
|
|
|
|
if ((isEngineer && isUserFMS) || !isEngineer) NavItemModel(2, "add_icon", context.translation.calendar, showLabel: false),
|
|
|
|
|
NavItemModel(3, "assets", context.translation.assets),
|
|
|
|
|
NavItemModel(4, "contact", context.translation.contact),
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
return Container(
|
|
|
|
|
// height: 84.toScreenHeight,
|
|
|
|
|
decoration: BoxDecoration(
|
|
|
|
|
color: AppColor.background(context),
|
|
|
|
|
boxShadow: [boxShadowR14],
|
|
|
|
|
@ -26,17 +35,12 @@ class AppBottomNavigationBar extends StatelessWidget {
|
|
|
|
|
child: BottomNavigationBar(
|
|
|
|
|
backgroundColor: Colors.white,
|
|
|
|
|
items: <BottomNavigationBarItem>[
|
|
|
|
|
navBarItem(context, index: 0, iconName: "overview", label: context.translation.overview),
|
|
|
|
|
navBarItem(context, index: 1, iconName: "request_icon", label: context.translation.workOrder),
|
|
|
|
|
// if (!isEngineer) navBarItem(context, index: 2, iconName: "add_icon", label: context.translation.calendar, showLabel: false),
|
|
|
|
|
navBarItem(context, index: 2, iconName: "add_icon", label: context.translation.calendar, showLabel: false),
|
|
|
|
|
// navBarItem(context, index: !isEngineer ? 3 : 2, iconName: "assets", label: context.translation.assets),
|
|
|
|
|
navBarItem(context, index: 3, iconName: "assets", label: context.translation.assets),
|
|
|
|
|
// navBarItem(context, index: !isEngineer ? 4 : 3, iconName: "contact", label: context.translation.contact),
|
|
|
|
|
navBarItem(context, index: 4, iconName: "contact", label: context.translation.contact),
|
|
|
|
|
for (int i = 0; i < navItems.length; i++) navBarItem(context, index: navItems[i].index, iconName: navItems[i].iconName, label: navItems[i].label, showLabel: navItems[i].showLabel),
|
|
|
|
|
],
|
|
|
|
|
currentIndex: selectedIndex,
|
|
|
|
|
onTap: onPressed,
|
|
|
|
|
onTap: (index) {
|
|
|
|
|
onPressed(navItems[index].index);
|
|
|
|
|
},
|
|
|
|
|
selectedLabelStyle: AppTextStyles.tinyFont2,
|
|
|
|
|
unselectedLabelStyle: AppTextStyles.tinyFont2,
|
|
|
|
|
selectedItemColor: Theme.of(context).bottomNavigationBarTheme.selectedItemColor,
|
|
|
|
|
@ -50,7 +54,7 @@ class AppBottomNavigationBar extends StatelessWidget {
|
|
|
|
|
icon: iconName
|
|
|
|
|
.toSvgAsset(
|
|
|
|
|
width: showLabel ? 26 : 38,
|
|
|
|
|
height: showLabel ? 26 : 38,
|
|
|
|
|
height: showLabel ? 26 : 38,
|
|
|
|
|
color: showLabel || (showLabel && selectedIndex != 2)
|
|
|
|
|
? selectedIndex == index
|
|
|
|
|
? Theme.of(context).bottomNavigationBarTheme.selectedItemColor
|
|
|
|
|
@ -62,3 +66,12 @@ class AppBottomNavigationBar extends StatelessWidget {
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class NavItemModel {
|
|
|
|
|
int index;
|
|
|
|
|
String label;
|
|
|
|
|
String iconName;
|
|
|
|
|
bool showLabel;
|
|
|
|
|
|
|
|
|
|
NavItemModel(this.index, this.iconName, this.label, {this.showLabel = true});
|
|
|
|
|
}
|
|
|
|
|
|