import 'dart:async'; import 'package:car_customer_app/view_models/appointments_view_model.dart'; import 'package:car_customer_app/view_models/dashboard_view_model.dart'; import 'package:car_customer_app/view_models/providers_view_model.dart'; import 'package:car_customer_app/views/dashboard/fragments/ads_fragment.dart'; import 'package:car_customer_app/views/dashboard/fragments/appointments_fragment.dart'; import 'package:car_customer_app/views/dashboard/fragments/home_fragment.dart'; import 'package:car_customer_app/views/dashboard/fragments/providers_fragment.dart'; import 'package:car_customer_app/views/dashboard/fragments/settings_fragment.dart'; import 'package:car_customer_app/views/dashboard/widgets/bottom_nav_bar.dart'; import 'package:car_customer_app/views/dashboard/widgets/drawer_widget.dart'; import 'package:flutter/material.dart'; import 'package:mc_common_app/classes/consts.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/extensions/extensions_widget.dart'; import 'package:provider/provider.dart'; class DashboardPage extends StatefulWidget { const DashboardPage({Key? key}) : super(key: key); @override State createState() => _DashboardPageState(); } class _DashboardPageState extends State { // late DashboardVM dashboardVM; @override void initState() { super.initState(); // dashboardVM = Provider.of(context, listen: false); fetchUsername(); scheduleMicrotask(() { context.read().populateAppointmentsFilterList(); context.read().populateProvidersFilterList(); context.read().populateAdsFilterList(); _onRefresh(); }); } Future _onRefresh() async { AdVM adVm = Provider.of(context, listen: false); AppointmentsVM appointmentsVM = Provider.of(context, listen: false); if (appointmentsVM.myAppointments.isEmpty) { await appointmentsVM.getMyAppointments(); } if (adVm.myAds.isEmpty) { await adVm.getMyAds(); } if (adVm.exploreAds.isEmpty) { await adVm.getExploreAds(); } } fetchUsername() async {} List fragments = [ const ProvidersFragment(), const AppointmentsFragment(), const HomeFragment(), AdsFragment(), const SettingsFragment(), ]; String getPageTitle(int index) { if (index == 0) { return "Providers"; } if (index == 1) { return "Appointments"; } if (index == 2) { return ""; } if (index == 3) { return "Ads"; } if (index == 4) { return ""; } return ""; } @override Widget build(BuildContext context) { bool isHomePage = context.watch().selectedNavbarBarIndex == 2; return Scaffold( appBar: CustomAppBar( backgroundColor: null, leadingWidth: 100, title: getPageTitle(context.watch().selectedNavbarBarIndex), profileImageUrl: MyAssets.bnCar, isRemoveBackButton: true, isDrawerEnabled: isHomePage ? true : false, actions: [(isHomePage ? MyAssets.notificationsBellIcon : MyAssets.searchIcon).buildSvg().paddingOnly(right: 21)], ), drawer: CustomDrawer(dashboardVM: context.watch()), bottomNavigationBar: CustomBottomNavbar(), body: fragments[context.watch().selectedNavbarBarIndex], ); } }