diff --git a/lib/config/customer_routes.dart b/lib/config/customer_routes.dart index 31326d4..6cca179 100644 --- a/lib/config/customer_routes.dart +++ b/lib/config/customer_routes.dart @@ -11,13 +11,14 @@ import 'package:mc_common_app/config/routes.dart'; import 'package:mc_common_app/models/advertisment_models/ad_details_model.dart'; import 'package:mc_common_app/models/appointments_models/appointment_list_model.dart'; import 'package:mc_common_app/models/provider_branches_models/branch_detail_model.dart'; +import 'package:mc_common_app/utils/enums.dart'; import 'package:mc_common_app/views/advertisement/ads_detail_view.dart'; import 'package:mc_common_app/views/advertisement/create_ad_view.dart'; import 'package:mc_common_app/views/advertisement/select_ad_type_view.dart'; import 'package:mc_common_app/views/payments/payment_methods_view.dart'; import 'package:mc_common_app/views/advertisement/ads_search_filter_view.dart'; -class CustomerAppRoutes { + class CustomerAppRoutes { static final Map routes = { AppRoutes.dashboard: (context) => DashboardPage(), AppRoutes.bookProviderAppView: (context) => BookProviderAppView(), @@ -29,7 +30,7 @@ class CustomerAppRoutes { AppRoutes.bookAppointmenServicesView: (context) => BookAppointmentServicesView(), AppRoutes.bookAppointmentsItemView: (context) => BookAppointmentsItemView(), AppRoutes.reviewAppointmentView: (context) => ReviewAppointment(), - AppRoutes.paymentMethodsView: (context) => PaymentMethodsView(), + AppRoutes.paymentMethodsView: (context) => PaymentMethodsView(paymentType: ModalRoute.of(context)!.settings.arguments as PaymentTypesEnum), AppRoutes.branchDetailPage: (context) => BranchDetailPage(branchDetailModel: ModalRoute.of(context)!.settings.arguments as BranchDetailModel), AppRoutes.providerProfilePage: (context) => ProviderProfilePage(providerId: ModalRoute.of(context)!.settings.arguments as int), }; diff --git a/lib/views/dashboard/dashboard_page.dart b/lib/views/dashboard/dashboard_page.dart index 086b261..7145d88 100644 --- a/lib/views/dashboard/dashboard_page.dart +++ b/lib/views/dashboard/dashboard_page.dart @@ -11,6 +11,7 @@ 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/config/routes.dart'; +import 'package:mc_common_app/models/widgets_models.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/widgets/common_widgets/app_bar.dart'; @@ -55,6 +56,22 @@ class _DashboardPageState extends State { if (adVm.exploreAds.isEmpty) { await adVm.getExploreAds(); } + + final adVM = context.read(); + if (adVM.vehicleTypes.isEmpty) { + await adVM.getVehicleTypes(); + } + + if (adVM.vehicleAdsDurations.isEmpty) { + await adVM.getVehicleAdsDuration(); + } + adVM.updateVehicleAdDurationId( + SelectionModel( + selectedId: adVM.vehicleAdsDurations.first.id ?? 0, + selectedOption: "${adVM.vehicleAdsDurations.first.days} Days", + itemPrice: adVM.vehicleAdsDurations.first.price!.toInt().toString(), + ), + ); } fetchUsername() async {} diff --git a/lib/views/dashboard/fragments/ads_fragment.dart b/lib/views/dashboard/fragments/ads_fragment.dart index faa4094..0bfc170 100644 --- a/lib/views/dashboard/fragments/ads_fragment.dart +++ b/lib/views/dashboard/fragments/ads_fragment.dart @@ -3,6 +3,7 @@ import 'package:mc_common_app/classes/app_state.dart'; import 'package:mc_common_app/config/dependencies.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/models/advertisment_models/ad_details_model.dart'; import 'package:mc_common_app/models/widgets_models.dart'; import 'package:mc_common_app/theme/colors.dart'; @@ -26,11 +27,7 @@ class AdsFragment extends StatelessWidget { List getAdsList(AdVM adVM) { if (adVM.isExploreAdsTapped) { - if (adVM.exploreAdsFilteredList.isNotEmpty) { - return adVM.exploreAdsFilteredList; - } else { - return adVM.exploreAds; - } + return adVM.exploreAdsFilteredList; } if (adVM.myAdsFilteredList.isNotEmpty) { return adVM.myAdsFilteredList; @@ -80,18 +77,21 @@ class AdsFragment extends StatelessWidget { ), ], ).horPaddingMain(), - if (adVM.isExploreAdsTapped && adVM.exploreAds.isNotEmpty) ...[ + if (adVM.isExploreAdsTapped) ...[ 16.height, - FiltersList(filterList: adVM.exploreAdsFilterOptions, onFilterTapped: (index, selectedFilterId) => adVM.applyFilterOnExploreAds(index: index), needLeftPadding: false) + FiltersList( + filterList: adVM.exploreAdsFilterOptions, + onFilterTapped: (index, selectedFilterId) => adVM.applyFilterOnExploreAds(index: index, createdByRoleFilter: selectedFilterId.toCreatedByRoleEnum()), + needLeftPadding: false) .paddingOnly(left: 21), ], - if (!adVM.isExploreAdsTapped && adVM.myAds.isNotEmpty) ...[ + if (!adVM.isExploreAdsTapped) ...[ 16.height, FiltersList( - filterList: adVM.myAdsFilterOptions, - onFilterTapped: (index, selectedFilterId) => adVM.applyFilterOnMyAds(index: index, selectedFilterId: selectedFilterId), - needLeftPadding: false) - .paddingOnly(left: 21), + filterList: adVM.myAdsFilterOptions, + onFilterTapped: (index, selectedFilterId) => adVM.applyFilterOnMyAds(index: index, adPostStatusEnum: selectedFilterId.toAdPostEnum()), + needLeftPadding: false, + ).paddingOnly(left: 21), ], ], ); @@ -113,22 +113,6 @@ class AdsFragment extends StatelessWidget { ), floatingActionButton: FloatingActionButton( onPressed: () async { - final adVM = context.read(); - if (adVM.vehicleTypes.isEmpty) { - await adVM.getVehicleTypes(); - } - - if (adVM.vehicleAdsDurations.isEmpty) { - await adVM.getVehicleAdsDuration(); - } - adVM.updateVehicleAdDurationId( - SelectionModel( - selectedId: adVM.vehicleAdsDurations.first.id ?? 0, - selectedOption: "${adVM.vehicleAdsDurations.first.days} Days", - itemPrice: adVM.vehicleAdsDurations.first.price!.toInt().toString(), - ), - ); - navigateWithName(context, AppRoutes.selectAdTypeView, arguments: injector.get().currentAppType == AppType.provider); }, backgroundColor: MyColors.darkPrimaryColor, diff --git a/lib/views/dashboard/fragments/home_fragment.dart b/lib/views/dashboard/fragments/home_fragment.dart index 9d10167..6a219cc 100644 --- a/lib/views/dashboard/fragments/home_fragment.dart +++ b/lib/views/dashboard/fragments/home_fragment.dart @@ -4,6 +4,7 @@ import 'package:car_customer_app/views/appointments/widgets/customer_appointment import 'package:flutter/material.dart'; import 'package:mc_common_app/classes/app_state.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; +import 'package:mc_common_app/utils/enums.dart'; import 'package:mc_common_app/view_models/ad_view_model.dart'; import 'package:mc_common_app/views/advertisement/ads_list.dart'; import 'package:mc_common_app/widgets/common_widgets/my_service_provider.dart'; @@ -79,7 +80,7 @@ class HomeFragment extends StatelessWidget { onSubtitleTapped: () { context.read().onNavbarTapped(3); context.read().updateIsExploreAds(true); - context.read().applyFilterOnExploreAds(index: 0); + context.read().applyFilterOnExploreAds(index: 0, createdByRoleFilter: CreatedByRoleEnum.allAds); }, ).horPaddingMain(), BuildAdsList(