import 'dart:async'; import 'package:badges/badges.dart' as b; import 'package:car_provider_app/view_models/dashboard_view_model.dart'; import 'package:car_provider_app/view_models/service_view_model.dart'; import 'package:car_provider_app/views/dashboard/fragments/ads_fragment.dart'; import 'package:car_provider_app/views/dashboard/fragments/appoinment_fragment.dart'; import 'package:car_provider_app/views/dashboard/widget/drawer_widget.dart'; import 'package:car_provider_app/views/settings/branch/branch_list_page.dart'; import 'package:flutter/material.dart'; import 'package:mc_common_app/classes/consts.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/theme/colors.dart'; import 'package:mc_common_app/view_models/ad_view_model.dart'; import 'package:mc_common_app/widgets/common_widgets/app_bar.dart'; import 'package:mc_common_app/widgets/common_widgets/bottom_nav_bar.dart'; import 'package:provider/provider.dart'; import 'fragments/home_fragment.dart'; import 'fragments/request_list_fragment.dart'; class DashboardPage extends StatefulWidget { const DashboardPage({Key? key}) : super(key: key); @override State createState() => _DashboardPageState(); } class _DashboardPageState extends State { late DashboardVM dashboardVM; final GlobalKey _scaffoldKey = GlobalKey(); @override void initState() { super.initState(); dashboardVM = Provider.of(context, listen: false); scheduleMicrotask(() { _onRefresh(); }); } Future _onRefresh() async { context.read().populateAdsFilterList(); context.read().getBranchAndServices(); AdVM adVm = Provider.of(context, listen: false); if (adVm.myAds.isEmpty) { await adVm.getMyAds(); } if (adVm.exploreAds.isEmpty) { await adVm.getExploreAds(); } } @override Widget build(BuildContext context) { List fragments = [ BranchListPage( onBackButtonTapped: () { dashboardVM.updateIndex(2); }, ), AppointmentFragment( onBackButtonTapped: () { dashboardVM.updateIndex(2); }, ), HomeFragment( onTap: () { _scaffoldKey.currentState!.openDrawer(); }, onRefresh: () async { _onRefresh(); }, ), AdsFragment( onBackButtonTapped: () { dashboardVM.updateIndex(2); }, ), RequestListFragment( onBackButtonTapped: () { dashboardVM.updateIndex(2); }, ), ]; return Scaffold( key: _scaffoldKey, drawer: CustomDrawer(dashboardVM: dashboardVM), // body: Consumer(builder: (context, model, _) { // return fragments[dashboardVM.selectedNavbarBarIndex]; // }), body: fragments[context.watch().selectedNavbarBarIndex], bottomNavigationBar: CustomBottomNavbar( onSelected: (i) { dashboardVM.updateIndex(i); }, isProvider: true, selectedNavbarBarIndex: dashboardVM.selectedNavbarBarIndex, ), ); } }