From e73902b4ddfc470578aeae3b5712e1c062551b02 Mon Sep 17 00:00:00 2001 From: Faiz Hashmi Date: Mon, 28 Oct 2024 11:47:46 +0300 Subject: [PATCH] Issues Fixed --- lib/config/provider_routes.dart | 75 +--- lib/main.dart | 7 +- lib/view_models/dashboard_view_model.dart | 151 -------- .../appoinment_detail_list_page.dart | 5 +- lib/views/appoinments/appointment_page.dart | 3 +- .../appoinments/update_appointment_page.dart | 3 +- .../appointment_detail_list_widget.dart | 4 +- .../branch/branch_detail_page.dart | 331 ++++++++++-------- .../branch/branch_list_page.dart | 10 +- .../branch/dealer/dealership_view.dart | 6 +- .../widget/assign_dealer_user_sheet.dart | 4 +- .../branch/define_branch_view.dart | 1 - .../schedule/schedules_list_page.dart | 6 +- .../services/create_services_page3.dart | 4 +- .../sheet/approved_branches_list_sheet.dart | 4 +- .../services/items_list_page.dart | 11 +- .../services/services_list_page.dart | 41 ++- lib/views/dashboard/dashboard_view.dart | 14 +- .../branch_appointment_fragment.dart | 11 +- .../dashboard/fragments/home_fragment.dart | 37 +- .../dashboard/widget/my_service_provider.dart | 6 +- .../subscriptions/all_subscriptions_page.dart | 1 - .../subscriptions/my_subscritions_page.dart | 18 +- .../widget/all_subscriptions_card.dart | 10 +- 24 files changed, 291 insertions(+), 472 deletions(-) delete mode 100644 lib/view_models/dashboard_view_model.dart diff --git a/lib/config/provider_routes.dart b/lib/config/provider_routes.dart index 7250a5b..6eb2944 100644 --- a/lib/config/provider_routes.dart +++ b/lib/config/provider_routes.dart @@ -24,80 +24,41 @@ import 'package:mc_common_app/models/appointments_models/appointment_list_model. import 'package:mc_common_app/models/provider_branches_models/branch_detail_model.dart'; class ProviderAppRoutes { - //settings - static const defineLicense = "/defineLicese"; - static const String dealershipSetting = "/dealershipSetting"; - static const String branchList = "/branchList"; - static const String branchDetail = "/branchDetail"; - static const String defineBranch = "/defineBranch"; - - //Appointments - static const String appointment = "/appointment"; - static const String appointmentDetailList = "/appointmentDetailList"; - static const String updateAppointmentPage = "/updateAppointmentPage"; - static const String addServiceInAppointment = "/addServiceInAppointment"; - static const String mergeAppointments = "/mergeAppointments"; - - //Requests - static const String requestsDetailPage = "/requestsDetailPage"; - static const String sendOfferPage = "/sendOfferPage"; - - //Services - static const String dealerUser = "/dealerUser"; - static const String servicesList = "/servicesList"; - static const String itemsList = "/itemsList"; - static const String createItem = "/createItem"; - static const String createServices = "/createServices"; - static const String createServices2 = "/createServices2"; - static const String createServices3 = "/createServices3"; - - //Schedules - static const String schedulesList = "/schedulesList"; - static const String addSchedule = "/addSchedule"; - - // Subscriptions - static const String mySubscriptionsPage = "/mySubscriptionsPage"; - static const String subscriptionsPage = "/subscriptionsPage"; - - //Bracnh Duplication - static const String matchServices = "/matchServices"; - static const String userSettings = "/userSettings"; - static final Map routes = { //Home page AppRoutes.dashboard: (context) => const DashboardView(), // defineLicense: (context) => DefineLicensePage(), - dealershipSetting: (context) => const DealershipView(), + AppRoutes.dealershipSetting: (context) => const DealershipView(), // branchList: (context) => BranchListPage(), - defineBranch: (context) => DefineBranchView((ModalRoute.of(context)!.settings.arguments) == null ? null : (ModalRoute.of(context)!.settings.arguments as BranchDetailModel)), - branchDetail: (context) => BranchDetailPage(ModalRoute.of(context)!.settings.arguments as BranchDetailModel), + AppRoutes.defineBranch: (context) => DefineBranchView((ModalRoute.of(context)!.settings.arguments) == null ? null : (ModalRoute.of(context)!.settings.arguments as BranchDetailModel)), + AppRoutes.branchDetail: (context) => BranchDetailPage(ModalRoute.of(context)!.settings.arguments as BranchDetailModel), //Appointments - appointment: (context) => AppointmentPage(branch: ModalRoute.of(context)!.settings.arguments as BranchDetailModel), - appointmentDetailList: (context) => const AppointmentDetailListPage(), - updateAppointmentPage: (context) => UpdateAppointmentPage(), - addServiceInAppointment: (context) => AddNewServiceAppointmentPage(ModalRoute.of(context)!.settings.arguments as AppointmentListModel), - mergeAppointments: (context) => const MergeAppointmentListPage(), + AppRoutes.appointment: (context) => AppointmentPage(branch: ModalRoute.of(context)!.settings.arguments as BranchDetailModel), + AppRoutes.appointmentDetailList: (context) => const AppointmentDetailListPage(), + AppRoutes.updateAppointmentPage: (context) => UpdateAppointmentPage(), + AppRoutes.addServiceInAppointment: (context) => AddNewServiceAppointmentPage(ModalRoute.of(context)!.settings.arguments as AppointmentListModel), + AppRoutes.mergeAppointments: (context) => const MergeAppointmentListPage(), //Subscriptions - mySubscriptionsPage: (context) => const MySubscriptionsPage(), - subscriptionsPage: (context) => const SubscriptionsPage(), + AppRoutes.mySubscriptionsPage: (context) => const MySubscriptionsPage(), + AppRoutes.subscriptionsPage: (context) => const SubscriptionsPage(), //Services - dealerUser: (context) => DealerUserPage(ModalRoute.of(context)!.settings.arguments as String), - servicesList: (context) => const ServicesListPage(), - itemsList: (context) => ItemsListPage(), - createItem: (context) => const CreateItemPage(), + AppRoutes.dealerUser: (context) => DealerUserPage(ModalRoute.of(context)!.settings.arguments as String), + AppRoutes.servicesList: (context) => const ServicesListPage(), + AppRoutes.itemsList: (context) => ItemsListPage(), + AppRoutes.createItem: (context) => const CreateItemPage(), //createServices: (context) => CreateServicesPage((ModalRoute.of(context)!.settings.arguments) == null ? null : (ModalRoute.of(context)!.settings.arguments as ServiceProviderBranch)), //createServices2: (context) => CreateServicesPage2((ModalRoute.of(context)!.settings.arguments) == null ? null : (ModalRoute.of(context)!.settings.arguments as ServiceProviderBranch)), - createServices3: (context) => CreateServicesPage3((ModalRoute.of(context)!.settings.arguments) == null ? null : (ModalRoute.of(context)!.settings.arguments as CreateBranchModel)), + AppRoutes.createServices3: (context) => CreateServicesPage3((ModalRoute.of(context)!.settings.arguments) == null ? null : (ModalRoute.of(context)!.settings.arguments as CreateBranchModel)), //Schedules - schedulesList: (context) => SchedulesListPage((ModalRoute.of(context)!.settings.arguments) == null ? null : (ModalRoute.of(context)!.settings.arguments as String)), - addSchedule: (context) => const AddSchedulesPage(), + AppRoutes.schedulesList: (context) => SchedulesListPage((ModalRoute.of(context)!.settings.arguments) == null ? null : (ModalRoute.of(context)!.settings.arguments as String)), + AppRoutes.addSchedule: (context) => const AddSchedulesPage(), //Branch Duplication - matchServices: (context) => MatchedServicesPage((ModalRoute.of(context)!.settings.arguments) == null ? null : (ModalRoute.of(context)!.settings.arguments as MatchServicesArguments)), + AppRoutes.matchServices: (context) => MatchedServicesPage((ModalRoute.of(context)!.settings.arguments) == null ? null : (ModalRoute.of(context)!.settings.arguments as MatchServicesArguments)), }; } diff --git a/lib/main.dart b/lib/main.dart index 09635bc..0d4f8b0 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,14 +1,13 @@ import 'dart:io'; - import 'package:car_provider_app/config/provider_dependencies.dart'; import 'package:mc_common_app/repositories/items_repo.dart'; import 'package:mc_common_app/repositories/schedule_repo.dart'; -import 'package:car_provider_app/view_models/dashboard_view_model.dart'; import 'package:car_provider_app/view_models/items_view_model.dart'; import 'package:car_provider_app/view_models/schedule_view_model.dart'; import 'package:mc_common_app/repositories/setting_options_repo.dart'; import 'package:mc_common_app/repositories/shipping_repo.dart'; import 'package:mc_common_app/services/firebase_service.dart'; +import 'package:mc_common_app/view_models/dashboard_view_model_provider.dart'; import 'package:mc_common_app/view_models/service_view_model.dart'; import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; @@ -68,8 +67,8 @@ Future main() async { ChangeNotifierProvider( create: (_) => BaseVM(), ), - ChangeNotifierProvider( - create: (_) => DashboardVM( + ChangeNotifierProvider( + create: (_) => DashboardVMProvider( userRepo: injector.get(), commonServices: injector.get(), ), diff --git a/lib/view_models/dashboard_view_model.dart b/lib/view_models/dashboard_view_model.dart deleted file mode 100644 index 45f7f1a..0000000 --- a/lib/view_models/dashboard_view_model.dart +++ /dev/null @@ -1,151 +0,0 @@ -import 'dart:io'; -import 'package:car_provider_app/config/provider_routes.dart'; -import 'package:car_provider_app/views/branch_management/branch/dealer/widget/add_phone_num_wiget.dart'; -import 'package:google_maps_flutter/google_maps_flutter.dart'; -import 'package:easy_localization/easy_localization.dart'; -import 'package:flutter/cupertino.dart'; -import 'package:mc_common_app/classes/app_state.dart'; -import 'package:mc_common_app/config/dependency_injection.dart'; -import 'package:mc_common_app/generated/locale_keys.g.dart'; -import 'package:mc_common_app/main.dart'; -import 'package:mc_common_app/models/user_models/image_response.dart'; -import 'package:mc_common_app/repositories/user_repo.dart'; -import 'package:mc_common_app/services/common_services.dart'; -import 'package:mc_common_app/utils/enums.dart'; -import 'package:mc_common_app/utils/navigator.dart'; -import 'package:mc_common_app/view_models/shipping_management_view_model.dart'; -import 'package:provider/provider.dart'; -import 'package:mc_common_app/utils/location/Location.dart'; -import 'package:mc_common_app/utils/shared_prefrence.dart'; -import 'package:mc_common_app/utils/utils.dart'; -import 'package:mc_common_app/view_models/ad_view_model.dart'; -import 'package:mc_common_app/view_models/appointments_view_model.dart'; -import 'package:mc_common_app/view_models/base_view_model.dart'; -import 'package:mc_common_app/widgets/bottom_sheet.dart'; -import 'package:mc_common_app/view_models/chat_view_model.dart'; -import 'package:mc_common_app/view_models/requests_view_model.dart'; -import 'package:mc_common_app/view_models/service_view_model.dart'; -import 'package:mc_common_app/view_models/subscriptions_view_model.dart'; - -class DashboardVM extends BaseVM { - final CommonAppServices commonServices; - final UserRepo userRepo; - - DashboardVM({required this.commonServices, required this.userRepo}); - - String pickedImage = ""; - - int selectedNavbarBarIndex = 2; - - void onNavbarTapped(int index) async { - logger.i(AppState().getDeviceToken); - selectedNavbarBarIndex = index; - notifyListeners(); - } - - void pickImageFromPhone(BuildContext context, int sourceFlag) async { - final File? pickedImageFile = await commonServices.pickImageFromPhone(sourceFlag); - if (pickedImageFile == null) { - return; - } - int sizeInBytes = pickedImageFile.lengthSync(); - if (sizeInBytes > 1000000) { - Utils.showToast(LocaleKeys.fileLarger.tr()); - return; - } else { - String image64 = Utils.convertFileToBase64(pickedImageFile); - - Utils.showLoading(context); - ImageResponse response = await userRepo.updateUserImage(image64); - Utils.hideLoading(context); - Navigator.pop(context); - if (response.messageStatus == 1) { - Utils.showToast(LocaleKeys.imageUploaded.tr()); - AppState().getUser.data!.userInfo!.userImageUrl = response.data; - } else { - Utils.showToast(response.message ?? ""); - } - } - } - - Future updateUserImage(String image) async { - return await userRepo.updateUserImage(image); - } - - fetchUsernameAndLocation() async { - String userName = await SharedPrefManager.getPhoneOrEmail(); - Location.getCurrentLocation( - (LatLng? latlng) { - AppState().currentLocation = latlng ?? const LatLng(0, 0); - }, - ); - notifyListeners(); - } - - Future onRefresh(BuildContext context) async { - final requestsVM = context.read(); - final chatVM = context.read(); - final appointmentVM = context.read(); - final shippingManagementVM = context.read(); - final serviceVM = context.read(); - final adVm = context.read(); - final subscriptionsVM = context.read(); - requestsVM.populateDataForRequestsFilter(); - appointmentVM.populateAppointmentsFilterList(); - shippingManagementVM.populateShippingRequestFilterList(); - await serviceVM.getBranchAndServices(); - await appointmentVM.getMyAppointmentsForProvider({"ServiceProviderID": injector.get().getUser.data?.userInfo?.providerId.toString() ?? "0"}); - adVm.populateAdsFilterList(); - await chatVM.buildHubConnection(context); - await adVm.getMyAds(); - await adVm.getExploreAds(); - await adVm.getVehicleTypes(); - await adVm.getVehicleAdsDuration(); - await requestsVM.getRequests(); - // await subscriptionsVM.getMySubscriptionsBySP(AppState().getUser.data?.userInfo?.providerId.toString() ?? ""); - await subscriptionsVM.getSubscriptionBySP(AppState().getUser.data?.userInfo?.providerId.toString() ?? "", true); - // await subscriptionsVM.getMySubscriptionsBySP(AppState().getUser.data?.userInfo?.providerId.toString() ?? ""); - } - - void checkUserSubscription(SubscriptionActionTypeEnum actionType, BuildContext context, {required Function() callback}) async { - switch (actionType) { - case SubscriptionActionTypeEnum.ads: - performCheckOnAds(context); - break; - case SubscriptionActionTypeEnum.users: - performCheckOnUsers(context, callback); - break; - case SubscriptionActionTypeEnum.branches: - performCheckOnBranches(context); - break; - } - } - - void performCheckOnBranches(BuildContext context) async { - if (AppState().getproviderSubscription.isNotEmpty && AppState().getproviderSubscription.first.branchesRemaining! > 0) { - logger.d(AppState().getproviderSubscription.first.toJson()); - await navigateWithName(context, ProviderAppRoutes.defineBranch); - } else { - Utils.showToast("Upgrade your subscription to add more Branches."); - } - } - - void performCheckOnAds(BuildContext context) async { - //adsRemaining - if (AppState().getproviderSubscription.isNotEmpty && AppState().getproviderSubscription.first.adsRemaining! > 0) { - logger.d(AppState().getproviderSubscription.first.toJson()); - await navigateWithName(context, ProviderAppRoutes.defineBranch); - } else { - Utils.showToast("Upgrade your subscription to add more Ads."); - } - } - - void performCheckOnUsers(BuildContext context, Function() callBack) async { - if (AppState().getproviderSubscription.isNotEmpty && AppState().getproviderSubscription.first.subUsersRemaining! > 0) { - logger.d(AppState().getproviderSubscription.first.toJson()); - showMyBottomSheet(context, isDismissible: false, child: const AddPhoneNumWidget(), callBackFunc: callBack); - } else { - Utils.showToast("Upgrade your subscription to add more Sub Users."); - } - } -} diff --git a/lib/views/appoinments/appoinment_detail_list_page.dart b/lib/views/appoinments/appoinment_detail_list_page.dart index b1c1fa7..a278f17 100644 --- a/lib/views/appoinments/appoinment_detail_list_page.dart +++ b/lib/views/appoinments/appoinment_detail_list_page.dart @@ -1,6 +1,7 @@ import 'package:car_provider_app/config/provider_routes.dart'; import 'package:car_provider_app/views/dashboard/widget/general_appointment_widget.dart'; import 'package:flutter/material.dart'; +import 'package:mc_common_app/config/routes.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/generated/locale_keys.g.dart'; import 'package:mc_common_app/utils/enums.dart'; @@ -40,7 +41,7 @@ class AppointmentDetailListPage extends StatelessWidget { onTap: () { appointmentsVM.selectedAppointmentId = appointmentsVM.myFilteredAppointments2[appointmentsVM.selectedAppointmentIndex].customerAppointmentList![index].id ?? 0; appointmentsVM.selectedAppointmentSubIndex = index; - navigateWithName(context, ProviderAppRoutes.updateAppointmentPage, arguments: appointmentsVM.myFilteredAppointments2[appointmentsVM.selectedAppointmentIndex].customerAppointmentList![index]); + navigateWithName(context, AppRoutes.updateAppointmentPage, arguments: appointmentsVM.myFilteredAppointments2[appointmentsVM.selectedAppointmentIndex].customerAppointmentList![index]); }, ); }, @@ -59,7 +60,7 @@ class AppointmentDetailListPage extends StatelessWidget { maxWidth: double.infinity, margin: const EdgeInsets.all(21), onPressed: () { - navigateWithName(context, ProviderAppRoutes.mergeAppointments); + navigateWithName(context, AppRoutes.mergeAppointments); }, ) : const SizedBox(), diff --git a/lib/views/appoinments/appointment_page.dart b/lib/views/appoinments/appointment_page.dart index 0f5247a..6173eed 100644 --- a/lib/views/appoinments/appointment_page.dart +++ b/lib/views/appoinments/appointment_page.dart @@ -4,6 +4,7 @@ import 'package:car_provider_app/config/provider_routes.dart'; import 'package:car_provider_app/views/dashboard/widget/general_appointment_widget.dart'; import 'package:mc_common_app/classes/app_state.dart'; import 'package:mc_common_app/config/dependency_injection.dart'; +import 'package:mc_common_app/config/routes.dart'; import 'package:mc_common_app/extensions/string_extensions.dart'; import 'package:mc_common_app/generated/locale_keys.g.dart'; import 'package:mc_common_app/models/provider_branches_models/branch_detail_model.dart'; @@ -113,7 +114,7 @@ class _AppointmentPageState extends State { context.read().selectedAppointmentIndex = index; navigateWithName( context, - ProviderAppRoutes.appointmentDetailList, + AppRoutes.appointmentDetailList, // arguments: appointmentsVM // .myFilteredAppointments2[index] // .customerAppointmentList, diff --git a/lib/views/appoinments/update_appointment_page.dart b/lib/views/appoinments/update_appointment_page.dart index 36a6fae..8f40bb9 100644 --- a/lib/views/appoinments/update_appointment_page.dart +++ b/lib/views/appoinments/update_appointment_page.dart @@ -5,6 +5,7 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:mc_common_app/classes/app_state.dart'; import 'package:mc_common_app/config/dependency_injection.dart'; +import 'package:mc_common_app/config/routes.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/extensions/string_extensions.dart'; import 'package:mc_common_app/generated/locale_keys.g.dart'; @@ -62,7 +63,7 @@ class UpdateAppointmentPage extends StatelessWidget { onPressed: () { navigateWithName( context, - ProviderAppRoutes.addServiceInAppointment, + AppRoutes.addServiceInAppointment, arguments: appointmentListModel, ); }, diff --git a/lib/views/appoinments/widget/appointment_detail_list_widget.dart b/lib/views/appoinments/widget/appointment_detail_list_widget.dart index e30adb4..3e120ec 100644 --- a/lib/views/appoinments/widget/appointment_detail_list_widget.dart +++ b/lib/views/appoinments/widget/appointment_detail_list_widget.dart @@ -1,13 +1,13 @@ import 'package:car_provider_app/config/provider_routes.dart'; import 'package:flutter/material.dart'; import 'package:mc_common_app/classes/consts.dart'; +import 'package:mc_common_app/config/routes.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/extensions/string_extensions.dart'; import 'package:mc_common_app/generated/locale_keys.g.dart'; import 'package:mc_common_app/theme/colors.dart'; import 'package:mc_common_app/utils/navigator.dart'; import 'package:mc_common_app/widgets/extensions/extensions_widget.dart'; -import 'package:sizer/sizer.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:easy_localization/easy_localization.dart'; @@ -85,7 +85,7 @@ class AppointmentDetailListWidget extends StatelessWidget { width: double.infinity, allPading: 12, onTap: () { - if (isNeedClick) navigateWithName(context, ProviderAppRoutes.updateAppointmentPage); + if (isNeedClick) navigateWithName(context, AppRoutes.updateAppointmentPage); }, ); } diff --git a/lib/views/branch_management/branch/branch_detail_page.dart b/lib/views/branch_management/branch/branch_detail_page.dart index f729996..34e8e8f 100644 --- a/lib/views/branch_management/branch/branch_detail_page.dart +++ b/lib/views/branch_management/branch/branch_detail_page.dart @@ -1,6 +1,7 @@ import 'dart:async'; import 'package:car_provider_app/config/provider_routes.dart'; import 'package:car_provider_app/views/branch_management/branch/dealer/widget/assign_dealer_user_sheet.dart'; +import 'package:mc_common_app/config/routes.dart'; import 'package:mc_common_app/generated/locale_keys.g.dart'; import 'package:mc_common_app/utils/utils.dart'; import 'package:mc_common_app/view_models/service_view_model.dart'; @@ -23,20 +24,33 @@ import 'package:mc_common_app/widgets/extensions/extensions_widget.dart'; import 'package:mc_common_app/widgets/row_with_arrow.dart'; import 'package:provider/provider.dart'; -class BranchDetailPage extends StatelessWidget { +class BranchDetailPage extends StatefulWidget { final BranchDetailModel branchData; const BranchDetailPage(this.branchData, {super.key}); - getBranchUsers(BuildContext context) { - scheduleMicrotask(() { - if (context.read().allProviderDealersList.isNotEmpty) { - context.read().getAllProviderDealers( - {"ServiceProviderBranchID": branchData.id.toString(), "ServiceProviderID": AppState().getUser.data?.userInfo?.providerId.toString() ?? ""}, - ); - } + @override + State createState() => _BranchDetailPageState(); +} + +class _BranchDetailPageState extends State { + @override + void initState() { + onInitState(); + super.initState(); + } + + onInitState() async { + ServiceVM serviceVM = context.read(); + scheduleMicrotask(() async { + await serviceVM.getAllProviderDealers( + { + "ServiceProviderBranchID": widget.branchData.id.toString(), + "ServiceProviderID": AppState().getUser.data?.userInfo?.providerId.toString() ?? "", + }, + ); - context.read().filterUserBranchCategories(); + await serviceVM.filterUserBranchCategories(); }); } @@ -82,7 +96,7 @@ class BranchDetailPage extends StatelessWidget { Widget buildFooterActionWidget(BuildContext context) { Widget actionWidget = const SizedBox(); - if (AppState().userType == UserType.providerDealer && branchData.branchStatus == BranchStatusEnum.approvedOrActive) { + if (AppState().userType == UserType.providerDealer && widget.branchData.branchStatus == BranchStatusEnum.approvedOrActive) { actionWidget = ShowFillButton( title: LocaleKeys.assignDealerUser.tr(), maxWidth: double.infinity, @@ -95,19 +109,19 @@ class BranchDetailPage extends StatelessWidget { showMyBottomSheet( context, child: AssignDealerUserSheet( - branchId: branchData.id.toString(), + branchId: widget.branchData.id.toString(), callBackFunc: () { - getBranchUsers(context); + onInitState(); }, ), ); }, ); - } else if (branchData.branchStatus == BranchStatusEnum.pending) { + } else if (widget.branchData.branchStatus == BranchStatusEnum.pending) { actionWidget = pendingApprovalAction(pendingText: "Approval Pending"); - } else if (branchData.branchStatus == BranchStatusEnum.deactivated) { + } else if (widget.branchData.branchStatus == BranchStatusEnum.deactivated) { actionWidget = pendingApprovalAction(pendingText: "Activate Now"); - } else if (branchData.branchStatus == BranchStatusEnum.rejected) { + } else if (widget.branchData.branchStatus == BranchStatusEnum.rejected) { actionWidget = Column( children: [ Row( @@ -117,9 +131,9 @@ class BranchDetailPage extends StatelessWidget { ), Row( children: [ - if (branchData.branchAuditTrial != null && branchData.branchAuditTrial!.isNotEmpty) ...[ + if (widget.branchData.branchAuditTrial != null && widget.branchData.branchAuditTrial!.isNotEmpty) ...[ Flexible( - child: ("${branchData.branchAuditTrial!.first.comment}").toText( + child: ("${widget.branchData.branchAuditTrial!.first.comment}").toText( fontSize: 14, color: MyColors.primaryColor, isItalic: true, @@ -203,165 +217,174 @@ class BranchDetailPage extends StatelessWidget { @override Widget build(BuildContext context) { - getBranchUsers(context); return Scaffold( appBar: CustomAppBar(title: LocaleKeys.branchDetail.tr()), body: Consumer(builder: (context, serviceVM, _) { return SizedBox( width: double.infinity, height: double.infinity, - child: Column( - children: [ - Expanded( - child: SingleChildScrollView( - child: Column( - children: [ - 10.height, - Column( - children: [ - Row( - children: [ - Expanded( - child: Row( - children: [ - branchData.branchProfileImage.buildNetworkImage(height: 66, width: 53, fit: BoxFit.cover), - 11.width, - Expanded( - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisAlignment: MainAxisAlignment.start, - children: [ - (branchData.branchName!).toText(fontSize: 16, color: MyColors.darkTextColor), - showData("", branchData.branchDescription.toString()), - ], + child: RefreshIndicator( + onRefresh: () async => await onInitState(), + child: Column( + children: [ + Expanded( + child: SingleChildScrollView( + child: Column( + children: [ + 10.height, + Column( + children: [ + Row( + children: [ + Expanded( + child: Row( + children: [ + widget.branchData.branchProfileImage.buildNetworkImage(height: 66, width: 53, fit: BoxFit.cover), + 11.width, + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.start, + children: [ + (widget.branchData.branchName!).toText(fontSize: 16, color: MyColors.darkTextColor), + showData("", widget.branchData.branchDescription.toString()), + ], + ), ), - ), - ], + ], + ), ), - ), - if (branchData.branchStatus != BranchStatusEnum.pending) ...[ - SvgPicture.asset(MyAssets.icEdit).onPress(() { - navigateWithName(context, ProviderAppRoutes.defineBranch, arguments: branchData); - }), + if (widget.branchData.branchStatus != BranchStatusEnum.pending) ...[ + SvgPicture.asset(MyAssets.icEdit).onPress(() { + navigateWithName(context, AppRoutes.defineBranch, arguments: widget.branchData); + }), + ], ], - ], - ), - Column( + ), + Column( + children: [ + showData("${LocaleKeys.location.tr()}:", "${widget.branchData.cityName.toString()}, ${widget.branchData.countryName.toString()}"), + showData("${LocaleKeys.provider.tr()}:", widget.branchData.serviceProviderName.toString()), + showData("${LocaleKeys.time.tr()}:", "${widget.branchData.openTime.toString()} - ${widget.branchData.closeTime.toString()}"), + showData("${LocaleKeys.address.tr()}:", widget.branchData.address.toString()), + ], + ).paddingOnly(left: 65), + ], + ).horPaddingMain(), + 10.height, + Container( + width: double.infinity, + color: MyColors.darkIconColor, + padding: const EdgeInsets.symmetric(horizontal: 21, vertical: 10), + child: Row( children: [ - showData("${LocaleKeys.location.tr()}:", "${branchData.cityName.toString()}, ${branchData.countryName.toString()}"), - showData("${LocaleKeys.provider.tr()}:", branchData.serviceProviderName.toString()), - showData("${LocaleKeys.time.tr()}:", "${branchData.openTime.toString()} - ${branchData.closeTime.toString()}"), - showData("${LocaleKeys.address.tr()}:", branchData.address.toString()), + const Icon( + Icons.calendar_month, + color: Colors.white, + ), + 8.width, + Expanded( + child: LocaleKeys.setorEditBranchSchedule.tr().toText( + isUnderLine: true, + fontSize: 12, + color: Colors.white, + decorationColor: MyColors.white, + ), + ), ], - ).paddingOnly(left: 65), - ], - ).horPaddingMain(), - 10.height, - Container( - width: double.infinity, - color: MyColors.darkIconColor, - padding: const EdgeInsets.symmetric(horizontal: 21, vertical: 10), - child: Row( + ) + .withArrow( + isArrowEnabled: true, + color: Colors.white, + arrowWidth: 16.16, + arrowHeight: 11.75, + ) + .margin(right: 5), + ).onPress(() { + if (widget.branchData.branchStatus == BranchStatusEnum.pending || widget.branchData.branchStatus == BranchStatusEnum.rejected) { + Utils.showToast("Please wait for the branch verification."); + return; + } + navigateWithName(context, AppRoutes.schedulesList, arguments: widget.branchData.id.toString()); + }), + Row( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.center, children: [ const Icon( - Icons.calendar_month, + Icons.add, color: Colors.white, + size: 18, + ).toContainer( + borderRadius: 100, + paddingAll: 2, + backgroundColor: MyColors.darkIconColor, ), 8.width, - Expanded( - child: LocaleKeys.setorEditBranchSchedule.tr().toText( - isUnderLine: true, - fontSize: 12, - color: Colors.white, - decorationColor: MyColors.white, - ), - ), + LocaleKeys.addNewService.tr().toText(fontSize: 15, color: MyColors.lightTextColor, letterSpacing: -0.52), ], ) - .withArrow( - isArrowEnabled: true, - color: Colors.white, - arrowWidth: 16.16, - arrowHeight: 11.75, - ) - .margin(right: 5), - ).onPress(() { - if (branchData.branchStatus == BranchStatusEnum.pending || branchData.branchStatus == BranchStatusEnum.rejected) { - Utils.showToast("Please wait for the branch verification."); - return; - } - navigateWithName(context, ProviderAppRoutes.schedulesList, arguments: branchData.id.toString()); - }), - Row( - crossAxisAlignment: CrossAxisAlignment.center, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - const Icon( - Icons.add, - color: Colors.white, - size: 18, - ).toContainer( - borderRadius: 100, - paddingAll: 2, - backgroundColor: MyColors.darkIconColor, + .toContainer( + borderRadius: 0, + backgroundColor: MyColors.darkWhiteColor, + width: double.infinity, + paddingAll: 25, + margin: const EdgeInsets.only( + left: 20, + right: 20, + top: 20, + )) + .onPress(() { + if (widget.branchData.branchStatus == BranchStatusEnum.pending || widget.branchData.branchStatus == BranchStatusEnum.rejected) { + Utils.showToast("Please wait for the branch verification."); + return; + } + navigateWithName( + context, + AppRoutes.createServices3, + arguments: CreateBranchModel( + branchId: widget.branchData.id.toString(), + branchName: widget.branchData.branchName.toString(), + isForEdit: false, + ), + ); + }), + if (serviceVM.state == ViewState.busy) ...[ + 30.height, + const Center( + child: CircularProgressIndicator(), ), - 8.width, - LocaleKeys.addNewService.tr().toText(fontSize: 15, color: MyColors.lightTextColor, letterSpacing: -0.52), - ], - ) - .toContainer( - borderRadius: 0, - backgroundColor: MyColors.darkWhiteColor, - width: double.infinity, - paddingAll: 25, - margin: const EdgeInsets.only( - left: 20, - right: 20, - top: 20, - )) - .onPress(() { - if (branchData.branchStatus == BranchStatusEnum.pending || branchData.branchStatus == BranchStatusEnum.rejected) { - Utils.showToast("Please wait for the branch verification."); - return; - } - navigateWithName( - context, - ProviderAppRoutes.createServices3, - arguments: CreateBranchModel( - branchId: branchData.id.toString(), - branchName: branchData.branchName.toString(), - isForEdit: false, + ] else ...[ + ListView.separated( + itemBuilder: (context, pIndex) { + return buildServiceTileWidget(pIndex, serviceVM).onPress(() { + serviceVM.categories[pIndex].branchId = widget.branchData.id.toString(); + serviceVM.categories[pIndex].branchName = widget.branchData.branchName.toString(); + navigateWithName(context, AppRoutes.servicesList, arguments: serviceVM.categories[pIndex]); + }); + }, + itemCount: serviceVM.categories.length, + physics: const NeverScrollableScrollPhysics(), + shrinkWrap: true, + padding: const EdgeInsets.all(20), + separatorBuilder: (BuildContext context, int index) { + return 12.height; + }, ), - ); - }), - ListView.separated( - itemBuilder: (context, pIndex) { - return buildServiceTileWidget(pIndex, serviceVM).onPress(() { - serviceVM.categories[pIndex].branchId = branchData.id.toString(); - serviceVM.categories[pIndex].branchName = branchData.branchName.toString(); - navigateWithName(context, ProviderAppRoutes.servicesList, arguments: serviceVM.categories[pIndex]); - }); - }, - itemCount: serviceVM.categories.length, - physics: const NeverScrollableScrollPhysics(), - shrinkWrap: true, - padding: const EdgeInsets.all(20), - separatorBuilder: (BuildContext context, int index) { - return 12.height; - }, - ), - 12.height, - ], + ], + 12.height, + ], + ), ), ), - ), - Container( - width: double.infinity, - height: 1, - color: Colors.grey[100], - ), - buildFooterActionWidget(context), - ], + Container( + width: double.infinity, + height: 1, + color: Colors.grey[100], + ), + buildFooterActionWidget(context), + ], + ), ), ); }), diff --git a/lib/views/branch_management/branch/branch_list_page.dart b/lib/views/branch_management/branch/branch_list_page.dart index e0593c6..e6c8195 100644 --- a/lib/views/branch_management/branch/branch_list_page.dart +++ b/lib/views/branch_management/branch/branch_list_page.dart @@ -1,13 +1,12 @@ -import 'package:car_provider_app/config/provider_routes.dart'; -import 'package:car_provider_app/view_models/dashboard_view_model.dart'; import 'package:flutter/gestures.dart'; import 'package:mc_common_app/classes/consts.dart'; +import 'package:mc_common_app/config/routes.dart'; import 'package:mc_common_app/generated/locale_keys.g.dart'; import 'package:mc_common_app/utils/dialogs_and_bottomsheets.dart'; +import 'package:mc_common_app/view_models/dashboard_view_model_provider.dart'; import 'package:mc_common_app/view_models/service_view_model.dart'; import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; - import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/extensions/string_extensions.dart'; import 'package:mc_common_app/models/provider_branches_models/branch_detail_model.dart'; @@ -183,7 +182,8 @@ class BranchListPage extends StatelessWidget { ).toWhiteContainer(width: double.infinity, pading: const EdgeInsets.all(12)).onPress(() async { branchModel.countryID = serviceVM.branches!.data!.countryID; branchModel.countryName = serviceVM.branches!.data!.countryName; - navigateWithName(context, ProviderAppRoutes.branchDetail, arguments: branchModel); + serviceVM.updateSelectedBranchId(branchModel.id); + navigateWithName(context, AppRoutes.branchDetail, arguments: branchModel); }), ); }, @@ -205,7 +205,7 @@ class BranchListPage extends StatelessWidget { color: Colors.white, ), onPressed: () { - context.read().checkUserSubscription(SubscriptionActionTypeEnum.branches, context, callback: () { }); + context.read().checkUserSubscription(SubscriptionActionTypeEnum.branches, context, callback: () {}); }, ), ); diff --git a/lib/views/branch_management/branch/dealer/dealership_view.dart b/lib/views/branch_management/branch/dealer/dealership_view.dart index 94579ab..f37e5f9 100644 --- a/lib/views/branch_management/branch/dealer/dealership_view.dart +++ b/lib/views/branch_management/branch/dealer/dealership_view.dart @@ -1,8 +1,8 @@ -import 'package:car_provider_app/config/provider_routes.dart'; import 'package:easy_localization/src/public_ext.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:mc_common_app/classes/consts.dart'; +import 'package:mc_common_app/config/routes.dart'; import 'package:mc_common_app/extensions/string_extensions.dart'; import 'package:mc_common_app/generated/locale_keys.g.dart'; import 'package:mc_common_app/theme/colors.dart'; @@ -35,7 +35,7 @@ class DealershipView extends StatelessWidget { ), title: LocaleKeys.defineBranches.tr().toText(fontSize: 12), onTap: () { - navigateWithName(context, ProviderAppRoutes.branchList); + navigateWithName(context, AppRoutes.branchList); }, ), ListTile( @@ -45,7 +45,7 @@ class DealershipView extends StatelessWidget { ), title: LocaleKeys.defineServices.tr().toText(fontSize: 12), onTap: () { - navigateWithName(context, ProviderAppRoutes.createServices2); + navigateWithName(context, AppRoutes.createServices2); }, ), ListTile( diff --git a/lib/views/branch_management/branch/dealer/widget/assign_dealer_user_sheet.dart b/lib/views/branch_management/branch/dealer/widget/assign_dealer_user_sheet.dart index a58ef33..3341a20 100644 --- a/lib/views/branch_management/branch/dealer/widget/assign_dealer_user_sheet.dart +++ b/lib/views/branch_management/branch/dealer/widget/assign_dealer_user_sheet.dart @@ -1,7 +1,7 @@ -import 'package:car_provider_app/view_models/dashboard_view_model.dart'; import 'package:flutter/cupertino.dart'; import 'package:mc_common_app/generated/locale_keys.g.dart'; import 'package:mc_common_app/models/general_models/generic_resp_model.dart'; +import 'package:mc_common_app/view_models/dashboard_view_model_provider.dart'; import 'package:mc_common_app/view_models/service_view_model.dart'; import 'package:flutter/material.dart'; import 'package:mc_common_app/classes/app_state.dart'; @@ -123,7 +123,7 @@ class _AssignDealerUserSheetState extends State { txtColor: MyColors.darkPrimaryColor, isFilled: false, onPressed: () { - context.read().checkUserSubscription(SubscriptionActionTypeEnum.users, context, callback: () { + context.read().checkUserSubscription(SubscriptionActionTypeEnum.users, context, callback: () { getBranchUsers(); }); }, diff --git a/lib/views/branch_management/branch/define_branch_view.dart b/lib/views/branch_management/branch/define_branch_view.dart index f385a1e..38d1b4a 100644 --- a/lib/views/branch_management/branch/define_branch_view.dart +++ b/lib/views/branch_management/branch/define_branch_view.dart @@ -1,5 +1,4 @@ import 'dart:async'; -import 'package:car_provider_app/view_models/dashboard_view_model.dart'; import 'package:mc_common_app/classes/consts.dart'; import 'package:mc_common_app/extensions/string_extensions.dart'; import 'package:mc_common_app/generated/locale_keys.g.dart'; diff --git a/lib/views/branch_management/schedule/schedules_list_page.dart b/lib/views/branch_management/schedule/schedules_list_page.dart index f7ecd8e..349be55 100644 --- a/lib/views/branch_management/schedule/schedules_list_page.dart +++ b/lib/views/branch_management/schedule/schedules_list_page.dart @@ -1,7 +1,7 @@ -import 'package:car_provider_app/config/provider_routes.dart'; import 'package:car_provider_app/view_models/schedule_view_model.dart'; import 'package:flutter/material.dart'; import 'package:mc_common_app/classes/consts.dart'; +import 'package:mc_common_app/config/routes.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/extensions/string_extensions.dart'; import 'package:mc_common_app/generated/locale_keys.g.dart'; @@ -119,7 +119,7 @@ class _SchedulesListPageState extends State { ), ).onPress(() { scheduleVM.schedule!.data![index].branchId = widget.branchId ?? ""; - navigateWithName(context, ProviderAppRoutes.addSchedule, arguments: scheduleVM.schedule!.data![index]); + navigateWithName(context, AppRoutes.addSchedule, arguments: scheduleVM.schedule!.data![index]); }), ], ), @@ -160,7 +160,7 @@ class _SchedulesListPageState extends State { maxWidth: double.infinity, margin: const EdgeInsets.all(20), onPressed: () { - navigateWithName(context, ProviderAppRoutes.addSchedule, arguments: ScheduleData(branchId: widget.branchId ?? "")); + navigateWithName(context, AppRoutes.addSchedule, arguments: ScheduleData(branchId: widget.branchId ?? "")); }, ), ], diff --git a/lib/views/branch_management/services/create_services_page3.dart b/lib/views/branch_management/services/create_services_page3.dart index 2cbdf35..baf272e 100644 --- a/lib/views/branch_management/services/create_services_page3.dart +++ b/lib/views/branch_management/services/create_services_page3.dart @@ -16,6 +16,7 @@ import 'package:mc_common_app/widgets/checkbox_with_title_desc.dart'; import 'package:mc_common_app/widgets/common_widgets/app_bar.dart'; import 'package:easy_localization/easy_localization.dart'; import 'package:mc_common_app/widgets/dropdown/dropdow_field.dart'; +import 'package:mc_common_app/widgets/empty_widget.dart'; import 'package:mc_common_app/widgets/txt_field.dart'; import 'package:provider/provider.dart'; @@ -116,7 +117,7 @@ class _CreateServicesPage3State extends State { list: model.servicesDropList, hint: LocaleKeys.defineServices.tr(), ) - : Container(), + : EmptyWidget(text: LocaleKeys.noServicesAvailable.tr()), 12.height, if (serviceId != -1) ...[ Column( @@ -281,7 +282,6 @@ class _CreateServicesPage3State extends State { Utils.showLoading(context); GenericRespModel mResponse = await model.updateServices(map); model.getBranchAndServices(); - model.filterUserBranchCategories(); Utils.hideLoading(context); Utils.showToast(mResponse.message ?? ""); if (mResponse.messageStatus == 1) { diff --git a/lib/views/branch_management/services/duplication/sheet/approved_branches_list_sheet.dart b/lib/views/branch_management/services/duplication/sheet/approved_branches_list_sheet.dart index adc8bab..23fd781 100644 --- a/lib/views/branch_management/services/duplication/sheet/approved_branches_list_sheet.dart +++ b/lib/views/branch_management/services/duplication/sheet/approved_branches_list_sheet.dart @@ -1,4 +1,4 @@ -import 'package:car_provider_app/config/provider_routes.dart'; +import 'package:mc_common_app/config/routes.dart'; import 'package:mc_common_app/view_models/service_view_model.dart'; import 'package:flutter/material.dart'; import 'package:mc_common_app/classes/app_state.dart'; @@ -115,7 +115,7 @@ class ApprovedBranchesListSheet extends StatelessWidget { // branches[index].countryName = model.branchs!.data!.countryName; navigateWithName( context, - ProviderAppRoutes.matchServices, + AppRoutes.matchServices, arguments: MatchServicesArguments( oldBranch: branches[index].id ?? 0, oldBranchName: branches[index].branchName ?? "", diff --git a/lib/views/branch_management/services/items_list_page.dart b/lib/views/branch_management/services/items_list_page.dart index 266c7eb..cb19bcf 100644 --- a/lib/views/branch_management/services/items_list_page.dart +++ b/lib/views/branch_management/services/items_list_page.dart @@ -1,7 +1,7 @@ -import 'package:car_provider_app/config/provider_routes.dart'; import 'package:car_provider_app/view_models/items_view_model.dart'; import 'package:flutter/material.dart'; import 'package:mc_common_app/classes/consts.dart'; +import 'package:mc_common_app/config/routes.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/extensions/string_extensions.dart'; import 'package:mc_common_app/generated/locale_keys.g.dart'; @@ -86,14 +86,11 @@ class ItemsListPage extends StatelessWidget { ), ).onPress(() { model.serviceItems!.data![index].isUpdateOrSelected = true; - navigateWithName(context, ProviderAppRoutes.createItem, arguments: model.serviceItems!.data![index]); + navigateWithName(context, AppRoutes.createItem, arguments: model.serviceItems!.data![index]); }), ], ), - ).toWhiteContainer( - width: double.infinity, - allPading: 12, - ); + ).toWhiteContainer(width: double.infinity, allPading: 12); }, separatorBuilder: (BuildContext context, int index) { return 12.height; @@ -111,7 +108,7 @@ class ItemsListPage extends StatelessWidget { onPressed: () { navigateWithName( context, - ProviderAppRoutes.createItem, + AppRoutes.createItem, arguments: ItemData( serviceProviderServiceId: serviceProviderService!.serviceProviderServiceId, ), diff --git a/lib/views/branch_management/services/services_list_page.dart b/lib/views/branch_management/services/services_list_page.dart index 43da2a8..6038048 100644 --- a/lib/views/branch_management/services/services_list_page.dart +++ b/lib/views/branch_management/services/services_list_page.dart @@ -5,6 +5,7 @@ import 'package:car_provider_app/views/branch_management/services/duplication/sh import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; import 'package:mc_common_app/classes/consts.dart'; +import 'package:mc_common_app/config/routes.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/extensions/string_extensions.dart'; import 'package:mc_common_app/generated/locale_keys.g.dart'; @@ -125,24 +126,26 @@ class _ServicesListPageState extends State { Expanded( child: (services[index].serviceDescription ?? "").toText(fontSize: 16), ), - Padding( - padding: const EdgeInsets.all(4.0), - child: SvgPicture.asset( - MyAssets.icEdit, - width: 16, - height: 16, - ), - ).onPress(() { - navigateWithName(context, ProviderAppRoutes.createServices3, - arguments: CreateBranchModel( - branchId: categoryData.branchId ?? '', - branchName: categoryData.branchName ?? '', - categoryId: categoryData.id.toString(), - categoryName: categoryData.categoryName, - serviceProviderService: services[index], - isForEdit: true, - )); - }), + if (services[index].serviceStatus != 1) ...[ + Padding( + padding: const EdgeInsets.all(4.0), + child: SvgPicture.asset( + MyAssets.icEdit, + width: 16, + height: 16, + ), + ).onPress(() { + navigateWithName(context, AppRoutes.createServices3, + arguments: CreateBranchModel( + branchId: categoryData.branchId ?? '', + branchName: categoryData.branchName ?? '', + categoryId: categoryData.id.toString(), + categoryName: categoryData.categoryName, + serviceProviderService: services[index], + isForEdit: true, + )); + }), + ] ], ), const SizedBox(height: 4), @@ -170,7 +173,7 @@ class _ServicesListPageState extends State { ], ), ).toWhiteContainer(width: double.infinity, allPading: 12).onPress( - () => navigateWithName(context, ProviderAppRoutes.itemsList, arguments: services[index]), + () => navigateWithName(context, AppRoutes.itemsList, arguments: services[index]), ); }, separatorBuilder: (context, index) { diff --git a/lib/views/dashboard/dashboard_view.dart b/lib/views/dashboard/dashboard_view.dart index 34680e4..abc5682 100644 --- a/lib/views/dashboard/dashboard_view.dart +++ b/lib/views/dashboard/dashboard_view.dart @@ -1,7 +1,7 @@ import 'dart:async'; -import 'package:car_provider_app/view_models/dashboard_view_model.dart'; import 'package:car_provider_app/views/branch_management/branch/branch_list_page.dart'; import 'package:flutter/material.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'; @@ -17,14 +17,14 @@ class DashboardView extends StatefulWidget { } class _DashboardViewState extends State { - late DashboardVM dashboardVM; + late DashboardVMProvider dashboardVMProvider; final GlobalKey _scaffoldKey = GlobalKey(); @override void initState() { super.initState(); - dashboardVM = Provider.of(context, listen: false); - scheduleMicrotask(() => dashboardVM.onRefresh(context)); + dashboardVMProvider = Provider.of(context, listen: false); + scheduleMicrotask(() => dashboardVMProvider.onRefresh(context)); } @override @@ -41,13 +41,13 @@ class _DashboardViewState extends State { canPop: false, child: Scaffold( key: _scaffoldKey, - body: fragments[context.watch().selectedNavbarBarIndex], + body: fragments[context.watch().selectedNavbarBarIndex], bottomNavigationBar: CustomBottomNavbar( onSelected: (index) { - dashboardVM.onNavbarTapped(index); + dashboardVMProvider.onNavbarTapped(index); }, isProvider: true, - selectedNavbarBarIndex: dashboardVM.selectedNavbarBarIndex, + selectedNavbarBarIndex: dashboardVMProvider.selectedNavbarBarIndex, ), ), ); diff --git a/lib/views/dashboard/fragments/branch_appointment_fragment.dart b/lib/views/dashboard/fragments/branch_appointment_fragment.dart index 27dd0d4..2ec84bd 100644 --- a/lib/views/dashboard/fragments/branch_appointment_fragment.dart +++ b/lib/views/dashboard/fragments/branch_appointment_fragment.dart @@ -1,8 +1,7 @@ -import 'package:geolocator/geolocator.dart'; -import 'package:car_provider_app/config/provider_routes.dart'; + import 'package:flutter/material.dart'; -import 'package:mc_common_app/classes/app_state.dart'; import 'package:mc_common_app/classes/consts.dart'; +import 'package:mc_common_app/config/routes.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/extensions/string_extensions.dart'; import 'package:mc_common_app/generated/locale_keys.g.dart'; @@ -10,14 +9,10 @@ import 'package:mc_common_app/models/provider_branches_models/branch_detail_mode import 'package:mc_common_app/theme/colors.dart'; import 'package:mc_common_app/utils/enums.dart'; import 'package:mc_common_app/utils/navigator.dart'; -import 'package:mc_common_app/utils/utils.dart'; import 'package:mc_common_app/view_models/service_view_model.dart'; import 'package:mc_common_app/widgets/common_widgets/app_bar.dart'; -import 'package:mc_common_app/widgets/dropdown/dropdow_field.dart'; import 'package:mc_common_app/widgets/extensions/extensions_widget.dart'; -import 'package:mc_common_app/widgets/tab/role_type_tab.dart'; import 'package:provider/provider.dart'; -import 'package:flutter_svg/flutter_svg.dart'; import 'package:easy_localization/easy_localization.dart'; class BranchAppointmentFragment extends StatelessWidget { @@ -109,7 +104,7 @@ class BranchAppointmentFragment extends StatelessWidget { ).toContainer(borderRadius: 0, isShadowEnabled: true).onPress(() async { branches[index].countryID = serviceVM.branches!.data!.countryID; branches[index].countryName = serviceVM.branches!.data!.countryName; - navigateWithName(context, ProviderAppRoutes.appointment, arguments: branches[index]); + navigateWithName(context, AppRoutes.appointment, arguments: branches[index]); }); }, separatorBuilder: (context, index) { diff --git a/lib/views/dashboard/fragments/home_fragment.dart b/lib/views/dashboard/fragments/home_fragment.dart index 3d55d1c..45c78f3 100644 --- a/lib/views/dashboard/fragments/home_fragment.dart +++ b/lib/views/dashboard/fragments/home_fragment.dart @@ -1,5 +1,3 @@ -import 'package:car_provider_app/config/provider_routes.dart'; -import 'package:car_provider_app/view_models/dashboard_view_model.dart'; import 'package:car_provider_app/views/dashboard/widget/my_service_provider.dart'; import 'package:flutter/material.dart'; import 'package:mc_common_app/classes/app_state.dart'; @@ -14,6 +12,7 @@ import 'package:mc_common_app/utils/enums.dart'; import 'package:mc_common_app/utils/navigator.dart'; import 'package:mc_common_app/view_models/ad_view_model.dart'; import 'package:mc_common_app/view_models/appointments_view_model.dart'; +import 'package:mc_common_app/view_models/dashboard_view_model_provider.dart'; import 'package:mc_common_app/views/advertisement/components/ads_list_widget.dart'; import 'package:mc_common_app/views/appointments/widgets/common_appointment_slider_widget.dart'; import 'package:mc_common_app/widgets/common_widgets/app_bar.dart'; @@ -35,24 +34,24 @@ class HomeFragment extends StatelessWidget { toolbarHeight: 59, onTap: () => navigateWithName(context, AppRoutes.settingOptionsMore), actions: [ - IconButton( - onPressed: () => context.read().onGeneralChatMessagesButtonPressed(context: context), - icon: b.Badge( - badgeContent: '3'.toText(color: MyColors.white), - badgeStyle: const b.BadgeStyle( - badgeColor: MyColors.primaryColor, - padding: EdgeInsets.all(5), - ), - child: const Padding(padding: EdgeInsets.only(top: 8, bottom: 8, right: 25, left: 10), child: Icon(Icons.message, size: 21))), - ), - 10.width, + // IconButton( + // onPressed: () => context.read().onGeneralChatMessagesButtonPressed(context: context), + // icon: b.Badge( + // badgeContent: '3'.toText(color: MyColors.white), + // badgeStyle: const b.BadgeStyle( + // badgeColor: MyColors.primaryColor, + // padding: EdgeInsets.all(5), + // ), + // child: const Padding(padding: EdgeInsets.only(top: 8, bottom: 8, right: 25, left: 10), child: Icon(Icons.message, size: 21))), + // ), + // 10.width, ], ), body: SizedBox( width: double.infinity, height: double.infinity, child: RefreshIndicator( - onRefresh: () async => await context.read().onRefresh(context), + onRefresh: () async => await context.read().onRefresh(context), child: ListView( padding: EdgeInsets.zero, children: [ @@ -63,7 +62,7 @@ class HomeFragment extends StatelessWidget { title: LocaleKeys.upcoming_appointment.tr(), subTitle: LocaleKeys.view_all.tr(), onSubtitleTapped: () { - context.read().onNavbarTapped(1); + context.read().onNavbarTapped(1); }, ).horPaddingMain(), // const AppointmentSliderWidget().horPaddingMain(), @@ -74,7 +73,7 @@ class HomeFragment extends StatelessWidget { ] else ...[ CommonAppointmentSliderWidget( onAppointmentClick: (AppointmentListModel value) { - navigateWithName(context, ProviderAppRoutes.appointmentDetailList, arguments: value); + navigateWithName(context, AppRoutes.appointmentDetailList, arguments: value); }, ) .toWhiteContainer( @@ -88,7 +87,7 @@ class HomeFragment extends StatelessWidget { title: LocaleKeys.myBranches.tr(), subTitle: LocaleKeys.view_all.tr(), onSubtitleTapped: () { - context.read().onNavbarTapped(0); + context.read().onNavbarTapped(0); }, ).horPaddingMain(), const ServiceProviderWidget().horPaddingMain(), @@ -114,7 +113,7 @@ class HomeFragment extends StatelessWidget { title: LocaleKeys.my_active_Ads.tr().toUpperCase(), subTitle: LocaleKeys.view_all.tr(), onSubtitleTapped: () { - context.read().onNavbarTapped(3); + context.read().onNavbarTapped(3); context.read().updateIsExploreAds(true); context.read().applyFilterOnExploreAds(createdByRoleFilter: CreatedByRoleEnum.allAds); }, @@ -136,7 +135,7 @@ class HomeFragment extends StatelessWidget { title: LocaleKeys.myRecommendedAds.tr().toUpperCase(), subTitle: LocaleKeys.view_all.tr(), onSubtitleTapped: () { - context.read().onNavbarTapped(3); + context.read().onNavbarTapped(3); context.read().updateIsExploreAds(true); context.read().applyFilterOnExploreAds(createdByRoleFilter: CreatedByRoleEnum.allAds); }, diff --git a/lib/views/dashboard/widget/my_service_provider.dart b/lib/views/dashboard/widget/my_service_provider.dart index 5ca7081..70dc4e4 100644 --- a/lib/views/dashboard/widget/my_service_provider.dart +++ b/lib/views/dashboard/widget/my_service_provider.dart @@ -1,6 +1,5 @@ -import 'package:car_provider_app/config/provider_routes.dart'; -import 'package:car_provider_app/generated/locale_keys.g.dart'; import 'package:flutter/cupertino.dart'; +import 'package:mc_common_app/config/routes.dart'; import 'package:mc_common_app/generated/locale_keys.g.dart'; import 'package:mc_common_app/models/provider_branches_models/branch_detail_model.dart'; import 'package:mc_common_app/theme/colors.dart'; @@ -53,7 +52,8 @@ class ServiceProviderWidget extends StatelessWidget { () { serviceVM.homePageBranches[index].countryID = serviceVM.branches!.data!.countryID; serviceVM.homePageBranches[index].countryName = serviceVM.branches!.data!.countryName; - navigateWithName(context, ProviderAppRoutes.branchDetail, arguments: serviceVM.homePageBranches[index]); + serviceVM.updateSelectedBranchId(serviceVM.homePageBranches[index].id); + navigateWithName(context, AppRoutes.branchDetail, arguments: serviceVM.homePageBranches[index]); }, ); }, diff --git a/lib/views/subscriptions/all_subscriptions_page.dart b/lib/views/subscriptions/all_subscriptions_page.dart index 58aa18c..c45739d 100644 --- a/lib/views/subscriptions/all_subscriptions_page.dart +++ b/lib/views/subscriptions/all_subscriptions_page.dart @@ -31,7 +31,6 @@ class SubscriptionsPage extends StatefulWidget { class _SubscriptionsPageState extends State { @override void initState() { - // TODO: implement initState super.initState(); scheduleMicrotask(() { context.read().getSubscriptionBySP( diff --git a/lib/views/subscriptions/my_subscritions_page.dart b/lib/views/subscriptions/my_subscritions_page.dart index 7061b9c..9e47759 100644 --- a/lib/views/subscriptions/my_subscritions_page.dart +++ b/lib/views/subscriptions/my_subscritions_page.dart @@ -1,24 +1,14 @@ import 'dart:async'; -import 'dart:developer'; - -import 'package:car_provider_app/config/provider_routes.dart'; -import 'package:car_provider_app/views/subscriptions/sheet/select_package_sheet.dart'; import 'package:car_provider_app/views/subscriptions/sheet/upgrade_package_sheet.dart'; -import 'package:car_provider_app/views/subscriptions/widget/all_subscriptions_card.dart'; import 'package:car_provider_app/views/subscriptions/widget/my_subscriptions_card.dart'; import 'package:flutter/material.dart'; -import 'package:mc_common_app/classes/app_state.dart'; import 'package:mc_common_app/config/routes.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/generated/locale_keys.g.dart'; -import 'package:mc_common_app/main.dart'; -import 'package:mc_common_app/models/general_models/generic_resp_model.dart'; import 'package:mc_common_app/models/subscriptions_models/subscription_model.dart'; import 'package:mc_common_app/theme/colors.dart'; import 'package:mc_common_app/utils/enums.dart'; import 'package:mc_common_app/utils/navigator.dart'; -import 'package:mc_common_app/utils/utils.dart'; -import 'package:mc_common_app/view_models/payment_view_model.dart'; import 'package:mc_common_app/view_models/subscriptions_view_model.dart'; import 'package:mc_common_app/widgets/bottom_sheet.dart'; import 'package:mc_common_app/widgets/button/show_fill_button.dart'; @@ -37,9 +27,9 @@ class _MySubscriptionsPageState extends State { @override void initState() { super.initState(); - scheduleMicrotask(() { - // context.read().getMySubscriptionsBySP(AppState().getUser.data?.userInfo?.providerId.toString() ?? ""); - }); + // scheduleMicrotask(() { + // context.read().getMySubscriptionsBySP(AppState().getUser.data?.userInfo?.providerId.toString() ?? ""); + // }); } @override @@ -151,7 +141,7 @@ class _MySubscriptionsPageState extends State { maxWidth: double.infinity, margin: const EdgeInsets.symmetric(horizontal: 21), onPressed: () { - navigateWithName(context, ProviderAppRoutes.subscriptionsPage); + navigateWithName(context, AppRoutes.subscriptionsPage); }, ), 21.height, diff --git a/lib/views/subscriptions/widget/all_subscriptions_card.dart b/lib/views/subscriptions/widget/all_subscriptions_card.dart index b181241..666f4cc 100644 --- a/lib/views/subscriptions/widget/all_subscriptions_card.dart +++ b/lib/views/subscriptions/widget/all_subscriptions_card.dart @@ -2,10 +2,12 @@ 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/extensions/string_extensions.dart'; +import 'package:mc_common_app/generated/locale_keys.g.dart'; import 'package:mc_common_app/models/subscriptions_models/subscription_model.dart'; import 'package:mc_common_app/theme/colors.dart'; import 'package:mc_common_app/utils/date_helper.dart'; import 'package:mc_common_app/utils/enums.dart'; +import 'package:easy_localization/easy_localization.dart'; import 'package:mc_common_app/widgets/extensions/extensions_widget.dart'; class AllSubscriptionsCard extends StatelessWidget { @@ -65,9 +67,9 @@ class AllSubscriptionsCard extends StatelessWidget { ], ), 6.height, - showItem("Ads:", subscription.subscriptionAds.toString()), - showItem("Users:", subscription.subscriptionSubUsers.toString()), - showItem("Branches:", subscription.subscriptionBranches.toString()), + showItem("${LocaleKeys.ads.tr()}:", subscription.subscriptionAds.toString()), + showItem("${LocaleKeys.users.tr()}:", subscription.subscriptionSubUsers.toString()), + showItem("${LocaleKeys.branches.tr()}:", subscription.subscriptionBranches.toString()), 14.height, Row( crossAxisAlignment: CrossAxisAlignment.center, @@ -80,7 +82,7 @@ class AllSubscriptionsCard extends StatelessWidget { children: [ subscription.price.toString().toText(fontSize: 29, isBold: true, color: textColor, letterSpacing: -1.77, height: 1), 2.width, - "${subscription.currency ?? ""}/Month".toText(color: MyColors.lightTextColor, fontSize: 16, letterSpacing: -0.64).paddingOnly(bottom: 2), + "${subscription.currency ?? ""} for ${subscription.durationDays} ${LocaleKeys.daysVar.tr()}".toText(color: MyColors.lightTextColor, fontSize: 16, letterSpacing: -0.64).paddingOnly(bottom: 3), ], ), ),