Check appointmnet filter for provider

aamir_dev
Faiz Hashmi 10 months ago
parent a36a702117
commit f459cb0610

@ -69,7 +69,7 @@ class _FavoriteListViewState extends State<FavoriteListView> {
return ProviderDetailCard( return ProviderDetailCard(
isFromFavoriteList: true, isFromFavoriteList: true,
onCardTapped: () => navigateWithName(context, AppRoutes.providerProfileView, arguments: providerProfileModel.providerID), onCardTapped: () => navigateWithName(context, AppRoutes.providerProfileView, arguments: providerProfileModel.providerID),
providerImageUrl: MyAssets.providersIcon, providerImageUrl: providerProfileModel.profileImage ?? "",
title: providerProfileModel.name ?? "", title: providerProfileModel.name ?? "",
description: providerProfileModel.companyDescription ?? "", description: providerProfileModel.companyDescription ?? "",
startedSince: DateHelper.formatAsDayMonthYear(DateHelper.parseStringToDate(DateHelper.formatDateT(providerProfileModel.memberSince ?? ""))), startedSince: DateHelper.formatAsDayMonthYear(DateHelper.parseStringToDate(DateHelper.formatDateT(providerProfileModel.memberSince ?? ""))),

@ -5,7 +5,6 @@ import 'package:mc_common_app/utils/enums.dart';
import 'package:mc_common_app/view_models/appointments_view_model.dart'; import 'package:mc_common_app/view_models/appointments_view_model.dart';
import 'package:easy_localization/easy_localization.dart'; import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.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/config/routes.dart';
import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/extensions/int_extensions.dart';
import 'package:mc_common_app/extensions/string_extensions.dart'; import 'package:mc_common_app/extensions/string_extensions.dart';
@ -47,14 +46,6 @@ class _ProviderProfileViewState extends State<ProviderProfileView> {
); );
} }
String providerBannerImageUrl = "";
if (appointmentsVM.providerProfileModel!.serviceProviderBranch!.isNotEmpty) {
if (appointmentsVM.providerProfileModel!.serviceProviderBranch!.first.branchImages!.isNotEmpty) {
providerBannerImageUrl = appointmentsVM.providerProfileModel!.serviceProviderBranch!.first.branchImages!.first.imageUrl ?? "";
}
}
return Scaffold( return Scaffold(
appBar: CustomAppBar( appBar: CustomAppBar(
title: LocaleKeys.providerDetails.tr(), title: LocaleKeys.providerDetails.tr(),
@ -93,7 +84,7 @@ class _ProviderProfileViewState extends State<ProviderProfileView> {
Column( Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Center(child: providerBannerImageUrl.buildNetworkImage(height: 250, width: double.infinity, fit: BoxFit.cover)), Center(child: appointmentsVM.providerProfileModel!.profileImage.buildNetworkImage(height: 250, width: double.infinity, fit: BoxFit.cover)),
12.height, 12.height,
if (appointmentsVM.providerProfileModel!.memberSince!.isNotEmpty) ...[ if (appointmentsVM.providerProfileModel!.memberSince!.isNotEmpty) ...[
Row( Row(

@ -53,17 +53,21 @@ class AppointmentsFragment extends StatelessWidget {
FiltersList( FiltersList(
filterList: appointmentsVM.appointmentsFilterOptions, filterList: appointmentsVM.appointmentsFilterOptions,
onFilterTapped: (index, selectedFilterId) { onFilterTapped: (index, selectedFilterId) {
appointmentsVM.applyFilterOnAppointmentsVM(appointmentStatusEnum: selectedFilterId.toAppointmentStatusEnum()); appointmentsVM.applyFilterOnAppointmentsVMForCustomers(appointmentStatusEnum: selectedFilterId.toAppointmentStatusEnum());
}), }),
16.height, 16.height,
Expanded( Expanded(
child: RefreshIndicator( child: RefreshIndicator(
onRefresh: () async { onRefresh: () async {
appointmentsVM.getMyAppointmentsForCustomer(isNeedToRebuild: true); int index = appointmentsVM.appointmentsFilterOptions.indexWhere((element) => element.isSelected);
if (index != -1) {
AppointmentStatusEnum appointmentStatusEnum = appointmentsVM.appointmentsFilterOptions[index].id.toAppointmentStatusEnum();
appointmentsVM.applyFilterOnAppointmentsVMForCustomers(appointmentStatusEnum: appointmentStatusEnum);
}
}, },
child: appointmentsVM.state == ViewState.busy child: appointmentsVM.state == ViewState.busy
? const Center(child: CircularProgressIndicator()) ? const Center(child: CircularProgressIndicator())
: appointmentsVM.myFilteredAppointments.isEmpty : appointmentsVM.myFilteredAppointmentsForCustomers.isEmpty
? Column( ? Column(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [ children: [
@ -73,7 +77,7 @@ class AppointmentsFragment extends StatelessWidget {
InkWell( InkWell(
onTap: () async { onTap: () async {
appointmentsVM.clearAppointmentFilters(); appointmentsVM.clearAppointmentFilters();
await appointmentsVM.getMyAppointmentsForCustomer(isNeedToRebuild: true); await appointmentsVM.applyFilterOnAppointmentsVMForCustomers(appointmentStatusEnum: AppointmentStatusEnum.allAppointments);
}, },
child: LocaleKeys.clearFilters.tr().toText( child: LocaleKeys.clearFilters.tr().toText(
fontSize: 14, fontSize: 14,
@ -87,11 +91,11 @@ class AppointmentsFragment extends StatelessWidget {
: ListView.separated( : ListView.separated(
separatorBuilder: (context, index) => 12.height, separatorBuilder: (context, index) => 12.height,
shrinkWrap: true, shrinkWrap: true,
itemCount: appointmentsVM.myFilteredAppointments.length, itemCount: appointmentsVM.myFilteredAppointmentsForCustomers.length,
itemBuilder: (BuildContext context, int index) { itemBuilder: (BuildContext context, int index) {
return AppointmentFragmentTileWidget( return AppointmentFragmentTileWidget(
onTapped: () { onTapped: () {
AppointmentListModel appointmentModel = appointmentsVM.myFilteredAppointments[index]; AppointmentListModel appointmentModel = appointmentsVM.myFilteredAppointmentsForCustomers[index];
appointmentModel.appointmentServicesList!.forEach((service) { appointmentModel.appointmentServicesList!.forEach((service) {
double totalServicePrice = 0.0; double totalServicePrice = 0.0;
service.serviceItems!.forEach((item) { service.serviceItems!.forEach((item) {
@ -101,7 +105,7 @@ class AppointmentsFragment extends StatelessWidget {
}); });
navigateWithName(context, AppRoutes.appointmentDetailView, arguments: appointmentModel); navigateWithName(context, AppRoutes.appointmentDetailView, arguments: appointmentModel);
}, },
appointmentListModel: appointmentsVM.myFilteredAppointments[index], appointmentListModel: appointmentsVM.myFilteredAppointmentsForCustomers[index],
).margin(left: 21, right: 21); ).margin(left: 21, right: 21);
}, },
), ),

@ -65,7 +65,7 @@ class HomeFragment extends StatelessWidget {
subTitle: LocaleKeys.view_all.tr(), subTitle: LocaleKeys.view_all.tr(),
onSubtitleTapped: () { onSubtitleTapped: () {
context.read<DashboardVmCustomer>().onNavbarTapped(1); context.read<DashboardVmCustomer>().onNavbarTapped(1);
context.read<AppointmentsVM>().applyFilterOnAppointmentsVM(appointmentStatusEnum: AppointmentStatusEnum.allAppointments); context.read<AppointmentsVM>().applyFilterOnAppointmentsVMForCustomers(appointmentStatusEnum: AppointmentStatusEnum.allAppointments);
}, },
).horPaddingMain(), ).horPaddingMain(),
CommonAppointmentSliderWidget() CommonAppointmentSliderWidget()

Loading…
Cancel
Save