import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:job_app/config/palette.dart'; import 'package:job_app/singletons/bottom_navigator_index.dart'; import 'package:job_app/singletons/user_info.dart'; import 'package:job_app/views/home.dart'; import 'package:job_app/views/jobs.dart'; import 'package:job_app/views/notifications.dart'; import 'package:job_app/views/search.dart'; import 'package:job_app/widgets/request_sent_popUp.dart'; import 'package:provider/provider.dart'; class BottomNavigator extends StatefulWidget { const BottomNavigator({Key key}) : super(key: key); @override _BottomNavigatorState createState() => _BottomNavigatorState(); } class _BottomNavigatorState extends State { Color homeColor= Colors.grey; Color searchColor= Colors.grey; Color notificationColor= Colors.grey; Color suitCaseColor= Colors.grey; final screen = [ Home(), Search(), //RequestSentPopUp(), Notifications(), Jobs(), ]; @override Widget build(BuildContext context) { return ChangeNotifierProvider.value( value: BottomNavigatorIndex(), child: Consumer( builder: (context,value,child){ if(value.index==0){ homeColor=Palette.primary; searchColor=Colors.grey; notificationColor=Colors.grey; suitCaseColor=Colors.grey; } return Scaffold( body: IndexedStack( index: value.index, children: screen, ), bottomNavigationBar: Container( height: 60, decoration: BoxDecoration( borderRadius: BorderRadius.only( topRight: Radius.circular(10), topLeft: Radius.circular(10)), boxShadow: [ BoxShadow(color: Colors.black38, spreadRadius: 0, blurRadius: 10), ], ), child: ClipRRect( borderRadius: BorderRadius.only( topRight: Radius.circular(20), topLeft: Radius.circular(20)), child: BottomNavigationBar( type: BottomNavigationBarType.fixed, selectedItemColor: Palette.primary, iconSize: 30, showUnselectedLabels: false, showSelectedLabels: false, currentIndex: value.index, onTap: (index) { if(userInfo.isValidToken){ setState(() { value.index = index; switch (index){ case 0 : setState(() { homeColor=Palette.primary; searchColor=Colors.grey; notificationColor=Colors.grey; suitCaseColor=Colors.grey; }); break; case 1 :setState(() { homeColor=Colors.grey; searchColor=Palette.primary; notificationColor=Colors.grey; suitCaseColor=Colors.grey; }); break; case 2 : setState(() { homeColor=Colors.grey; searchColor=Colors.grey; notificationColor=Palette.primary; suitCaseColor=Colors.grey; }); break; case 3 : setState(() { homeColor=Colors.grey; searchColor=Colors.grey; notificationColor=Colors.grey; suitCaseColor=Palette.primary; }); } }); } else if(index!=0){ Navigator.pushNamed(context, '/login_register'); } }, items: [ BottomNavigationBarItem( icon: SvgPicture.asset("assets/icons/home.svg",color: homeColor,), label: 'Home', ), BottomNavigationBarItem( icon: SvgPicture.asset("assets/icons/magnifier.svg",color: searchColor,), label: 'Search', ), BottomNavigationBarItem( icon: SvgPicture.asset("assets/icons/notifications.svg",color: notificationColor,), label: 'Notifications', ), BottomNavigationBarItem( icon: SvgPicture.asset("assets/icons/suitcase.svg",color:suitCaseColor,), label: 'Jobs'), ], ), ), ), ); }, ), ); } }