import 'package:flutter/material.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:gap/gap.dart'; import 'package:pharmacy_mobile/auth/auth_service.dart'; import 'package:pharmacy_mobile/pages/customer_pages/customer_additem_page.dart'; import 'package:pharmacy_mobile/pages/customer_pages/customer_cart_page.dart'; import 'package:pharmacy_mobile/pages/customer_pages/customer_main_page.dart'; import 'package:pharmacy_mobile/pages/customer_pages/customer_profile_page.dart'; import 'package:pharmacy_mobile/pages/customer_pages/customer_search_page.dart'; import 'package:pharmacy_mobile/widgets/button_widget.dart'; import 'package:pharmacy_mobile/widgets/logo_widget.dart'; import 'package:pharmacy_mobile/widgets/menu_widget.dart'; import 'package:pharmacy_mobile/widgets/page_background_widget.dart'; import 'package:pharmacy_mobile/widgets/snackbar_widget.dart'; import 'package:pharmacy_mobile/widgets/text_widget.dart'; import 'package:pharmacy_mobile/widgets/title_widget.dart'; import 'package:go_router/go_router.dart'; import 'package:animated_notch_bottom_bar/animated_notch_bottom_bar/animated_notch_bottom_bar.dart'; class CustomerPage extends StatefulWidget { const CustomerPage({super.key}); @override State createState() => _CustomerPageState(); } class _CustomerPageState extends State { final _authService = AuthService(); final _pageController = PageController(initialPage: 0); final NotchBottomBarController _notchController = NotchBottomBarController(index: 0); void sample() {} void signOut() async { // ignore: use_build_context_synchronously await _authService.signOut().then((_) => {context.go('/'), showNotification(context, 'Logged Out', true)}); } @override Widget build(BuildContext context) { final List bottomBarPages = [ CustomerMainPage( controller: _notchController, ), const CustomerSearchPage(), const CustomerAddItemPage(), const CustomerCartPage(), const CustomerProfilePage() ]; final Color selectedBarColor = const Color.fromRGBO(241, 255, 255, 0.83); final Color unselectedBarColor = const Color.fromRGBO(206, 206, 206, 1); return PopScope( canPop: false, child: Scaffold( resizeToAvoidBottomInset: false, body: PageView( controller: _pageController, physics: const NeverScrollableScrollPhysics(), children: List.generate(bottomBarPages.length, (index) => bottomBarPages[index]), ), extendBody: true, bottomNavigationBar: AnimatedNotchBottomBar( notchBottomBarController: _notchController, showLabel: true, textOverflow: TextOverflow.visible, maxLine: 1, // shadowElevation: 5, kBottomRadius: 28.0, color: const Color.fromARGB(99, 204, 166, 240), notchColor: const Color.fromARGB(161, 209, 166, 240), removeMargins: false, bottomBarWidth: 500, durationInMilliSeconds: 300, // itemLabelStyle: const TextStyle(fontSize: 10), // elevation: 1, bottomBarItems: [ BottomBarItem( inActiveItem: FaIcon(FontAwesomeIcons.house, size: 20, color: unselectedBarColor), activeItem: FaIcon( FontAwesomeIcons.house, size: 20, color: selectedBarColor, ), itemLabelWidget: TextWidget(text: 'Home', size: 12, bold: true, color: unselectedBarColor)), BottomBarItem( inActiveItem: FaIcon(FontAwesomeIcons.magnifyingGlass, size: 20, color: unselectedBarColor), activeItem: Icon(FontAwesomeIcons.magnifyingGlass, size: 20, color: selectedBarColor), itemLabelWidget: TextWidget(text: 'Search', size: 12, bold: true, color: unselectedBarColor), ), BottomBarItem( inActiveItem: FaIcon(FontAwesomeIcons.plus, size: 20, color: unselectedBarColor), activeItem: Icon(FontAwesomeIcons.plus, size: 20, color: selectedBarColor), itemLabelWidget: TextWidget(text: 'Add Item', size: 12, bold: true, color: unselectedBarColor), ), BottomBarItem( inActiveItem: FaIcon(FontAwesomeIcons.cartShopping, size: 20, color: unselectedBarColor), activeItem: FaIcon(FontAwesomeIcons.cartShopping, size: 20, color: selectedBarColor), itemLabelWidget: TextWidget(text: 'Cart', size: 12, bold: true, color: unselectedBarColor), ), BottomBarItem( inActiveItem: Icon(Icons.person, size: 20, color: unselectedBarColor), activeItem: Icon(Icons.person, size: 20, color: selectedBarColor), itemLabelWidget: TextWidget(text: 'Profile', size: 12, bold: true, color: unselectedBarColor), ), ], onTap: (index) { _pageController.jumpToPage(index); setState(() {}); }, kIconSize: 24, ))); } }