From 0b953bbe7dfe5635d7d4ad267b467b254ca49c4b Mon Sep 17 00:00:00 2001 From: Faiz Hashmi Date: Sun, 12 May 2024 18:13:17 +0300 Subject: [PATCH] Added BranchFilters and their API integrations --- lib/main.dart | 2 -- lib/views/dashboard/dashboard_page.dart | 21 ++++++++++++++++--- .../fragments/branches_fragment.dart | 14 +++++++------ .../dashboard/fragments/home_fragment.dart | 2 +- 4 files changed, 27 insertions(+), 12 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index 80c46dd..abb5549 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -2,7 +2,6 @@ import 'package:car_customer_app/config/customer_dependencies.dart'; import 'package:car_customer_app/config/customer_routes.dart'; import 'package:mc_common_app/repositories/branch_repo.dart'; import 'package:mc_common_app/repositories/chat_repo.dart'; -import 'package:mc_common_app/repositories/provider_repo.dart'; import 'package:mc_common_app/repositories/appointment_repo.dart'; import 'package:mc_common_app/repositories/request_repo.dart'; import 'package:mc_common_app/view_models/appointments_view_model.dart'; @@ -64,7 +63,6 @@ Future main() async { ChangeNotifierProvider( create: (_) => AppointmentsVM( scheduleRepo: injector.get(), - providerRepo: injector.get(), commonServices: injector.get(), commonRepo: injector.get(), branchRepo: injector.get(), diff --git a/lib/views/dashboard/dashboard_page.dart b/lib/views/dashboard/dashboard_page.dart index bdefaf8..4a605a3 100644 --- a/lib/views/dashboard/dashboard_page.dart +++ b/lib/views/dashboard/dashboard_page.dart @@ -58,8 +58,9 @@ class _DashboardPageState extends State { await appointmentsVM.getMyAppointments(); } if (appointmentsVM.nearbyBranches.isEmpty) { - await appointmentsVM.getAllNearBranches(); + await appointmentsVM.getAllNearBranches(isFromRefresh: true); } + if (adVM.myAds.isEmpty) { await adVM.getMyAds(); } @@ -160,11 +161,25 @@ class _DashboardPageState extends State { navigateWithName(context, AppRoutes.adsFilterView); } if (dashboardVM.selectedNavbarBarIndex == 0) { - await context.read().populateDataForBranchesFilter(); navigateWithName(context, AppRoutes.branchSearchFilterPage); } }, - child: MyAssets.searchIcon.buildSvg(), + child: Consumer( + builder: (BuildContext context, AppointmentsVM appointmentsVM, Widget? child) { + return appointmentsVM.branchFiltersCounter > 0 + ? Padding( + padding: const EdgeInsets.only(top: 20), + child: Badge( + largeSize: 15, + smallSize: 20, + backgroundColor: MyColors.darkPrimaryColor, + label: Text('${appointmentsVM.branchFiltersCounter}'), + child: MyAssets.searchIcon.buildSvg(), + ), + ) + : MyAssets.searchIcon.buildSvg(); + }, + ), )) .paddingOnly(right: 21) ], diff --git a/lib/views/dashboard/fragments/branches_fragment.dart b/lib/views/dashboard/fragments/branches_fragment.dart index a084265..72a13c5 100644 --- a/lib/views/dashboard/fragments/branches_fragment.dart +++ b/lib/views/dashboard/fragments/branches_fragment.dart @@ -27,16 +27,18 @@ class BranchesFragment extends StatelessWidget { builder: (BuildContext context, AppointmentsVM appointmentsVM, Widget? child) { return Column( children: [ - 16.height, - FiltersList( - filterList: appointmentsVM.providersFilterOptions, - onFilterTapped: (index, selectedFilterId) => appointmentsVM.applyFilterOnProviders(index: index), - ), + if (appointmentsVM.branchesFilterOptions.isNotEmpty) ...[ + 16.height, + FiltersList( + filterList: appointmentsVM.branchesFilterOptions, + onFilterTapped: (index, selectedFilterId) => appointmentsVM.applyFilterOnBranches(index: index), + ), + ], 16.height, Expanded( child: RefreshIndicator( onRefresh: () async { - context.read().getAllNearBranches(isNeedToRebuild: true); + context.read().getAllNearBranches(isNeedToRebuild: true, isFromRefresh: true); }, child: Container( width: double.infinity, diff --git a/lib/views/dashboard/fragments/home_fragment.dart b/lib/views/dashboard/fragments/home_fragment.dart index 2c5d42b..3dd22b4 100644 --- a/lib/views/dashboard/fragments/home_fragment.dart +++ b/lib/views/dashboard/fragments/home_fragment.dart @@ -44,7 +44,7 @@ class HomeFragment extends StatelessWidget { subTitle: "View All", onSubtitleTapped: () { context.read().onNavbarTapped(0); - context.read().applyFilterOnProviders(index: 0); + context.read().applyFilterOnBranches(index: 0); }).horPaddingMain(), Consumer(builder: (BuildContext context, AppointmentsVM appointmentsVM, Widget? child) { return ServiceProviderWidget(nearbyBranches: context.read().nearbyBranches).horPaddingMain();