Added BranchFilters and their API integrations

aamir_dev
Faiz Hashmi 6 months ago
parent e2de476581
commit 0b953bbe7d

@ -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<void> main() async {
ChangeNotifierProvider<AppointmentsVM>(
create: (_) => AppointmentsVM(
scheduleRepo: injector.get<AppointmentRepo>(),
providerRepo: injector.get<ProviderRepo>(),
commonServices: injector.get<CommonAppServices>(),
commonRepo: injector.get<CommonRepo>(),
branchRepo: injector.get<BranchRepo>(),

@ -58,8 +58,9 @@ class _DashboardPageState extends State<DashboardPage> {
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<DashboardPage> {
navigateWithName(context, AppRoutes.adsFilterView);
}
if (dashboardVM.selectedNavbarBarIndex == 0) {
await context.read<AppointmentsVM>().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)
],

@ -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<AppointmentsVM>().getAllNearBranches(isNeedToRebuild: true);
context.read<AppointmentsVM>().getAllNearBranches(isNeedToRebuild: true, isFromRefresh: true);
},
child: Container(
width: double.infinity,

@ -44,7 +44,7 @@ class HomeFragment extends StatelessWidget {
subTitle: "View All",
onSubtitleTapped: () {
context.read<DashboardVmCustomer>().onNavbarTapped(0);
context.read<AppointmentsVM>().applyFilterOnProviders(index: 0);
context.read<AppointmentsVM>().applyFilterOnBranches(index: 0);
}).horPaddingMain(),
Consumer(builder: (BuildContext context, AppointmentsVM appointmentsVM, Widget? child) {
return ServiceProviderWidget(nearbyBranches: context.read<AppointmentsVM>().nearbyBranches).horPaddingMain();

Loading…
Cancel
Save