import 'dart:async'; import 'dart:developer'; import 'package:car_provider_app/views/branch_management/branch/branch_list_page.dart'; import 'package:flutter/material.dart'; import 'package:mc_common_app/utils/enums.dart'; import 'package:mc_common_app/view_models/dashboard_view_model_provider.dart'; import 'package:mc_common_app/views/common_fragments/requests_fragment.dart'; import 'package:mc_common_app/widgets/common_widgets/bottom_nav_bar.dart'; import 'package:provider/provider.dart'; import 'fragments/branch_appointment_fragment.dart'; import 'fragments/home_fragment.dart'; import 'package:mc_common_app/views/common_fragments/ads_fragment.dart'; class DashboardView extends StatefulWidget { final DashboardRouteEnum dashboardRouteEnum; const DashboardView({Key? key, required this.dashboardRouteEnum}) : super(key: key); @override State createState() => _DashboardViewState(); } class _DashboardViewState extends State { late DashboardVMProvider dashboardVMProvider; final GlobalKey _scaffoldKey = GlobalKey(); @override void initState() { log("widget.dashboardRouteEnum: ${widget.dashboardRouteEnum}"); super.initState(); dashboardVMProvider = Provider.of(context, listen: false); scheduleMicrotask(() => dashboardVMProvider.onRefresh(context, dashboardRouteEnum: widget.dashboardRouteEnum)); } @override Widget build(BuildContext context) { List fragments = [ const BranchListPage(), const BranchAppointmentFragment(), const HomeFragment(), const AdsFragment(), const MyRequestsFragment(), ]; return PopScope( canPop: false, child: Scaffold( key: _scaffoldKey, body: fragments[context.watch().selectedNavbarBarIndex], bottomNavigationBar: CustomBottomNavbar( onSelected: (index) { dashboardVMProvider.onNavbarTapped(index); }, isProvider: true, selectedNavbarBarIndex: dashboardVMProvider.selectedNavbarBarIndex, ), ), ); } }