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(
isFromFavoriteList: true,
onCardTapped: () => navigateWithName(context, AppRoutes.providerProfileView, arguments: providerProfileModel.providerID),
providerImageUrl: MyAssets.providersIcon,
providerImageUrl: providerProfileModel.profileImage ?? "",
title: providerProfileModel.name ?? "",
description: providerProfileModel.companyDescription ?? "",
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:easy_localization/easy_localization.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';
@ -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(
appBar: CustomAppBar(
title: LocaleKeys.providerDetails.tr(),
@ -93,7 +84,7 @@ class _ProviderProfileViewState extends State<ProviderProfileView> {
Column(
crossAxisAlignment: CrossAxisAlignment.start,
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,
if (appointmentsVM.providerProfileModel!.memberSince!.isNotEmpty) ...[
Row(

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

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

Loading…
Cancel
Save