Merge branch 'faiz_development' into aamir_dev

# Conflicts:
#	pubspec.yaml
aamir_dev
Aamir 1 year ago
commit b666876927

@ -1,18 +1,18 @@
import 'dart:async';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:mc_common_app/extensions/int_extensions.dart';
import 'package:mc_common_app/extensions/string_extensions.dart';
import 'package:mc_common_app/generated/locale_keys.g.dart';
import 'package:mc_common_app/models/services_models/item_model.dart';
import 'package:mc_common_app/theme/colors.dart';
import 'package:mc_common_app/utils/date_helper.dart';
import 'package:mc_common_app/utils/enums.dart';
import 'package:mc_common_app/view_models/appointments_view_model.dart';
import 'package:flutter/material.dart';
import 'package:mc_common_app/extensions/int_extensions.dart';
import 'package:mc_common_app/extensions/string_extensions.dart';
import 'package:mc_common_app/theme/colors.dart';
import 'package:mc_common_app/widgets/empty_widget.dart';
import 'package:mc_common_app/widgets/extensions/extensions_widget.dart';
import 'package:provider/provider.dart';
import 'package:easy_localization/easy_localization.dart';
class ItemsListSheet extends StatefulWidget {
final int serviceProviderServiceId;
@ -27,7 +27,7 @@ class _ItemsListSheetState extends State<ItemsListSheet> {
void initState() {
super.initState();
scheduleMicrotask(() {
context.read<AppointmentsVM>().getServiceItems(widget.serviceProviderServiceId);
context.read<AppointmentsVM>().getServiceItems(serviceId: widget.serviceProviderServiceId);
});
}
@ -61,7 +61,8 @@ class _ItemsListSheetState extends State<ItemsListSheet> {
serviceItemModel.description.toString().toText(fontSize: 12, color: MyColors.lightTextColor),
8.height,
if (serviceItemModel.manufactureDate != null && serviceItemModel.manufactureDate!.isNotEmpty) ...[
showItem(LocaleKeys.manufacturedOn.tr() + ":", (DateHelper.formatAsDayMonthYear(DateHelper.parseStringToDate(serviceItemModel.manufactureDate!))), valueColor: MyColors.darkTextColor),
showItem(LocaleKeys.manufacturedOn.tr() + ":", (DateHelper.formatAsDayMonthYear(DateHelper.parseStringToDate(serviceItemModel.manufactureDate!))),
valueColor: MyColors.darkTextColor),
],
showItem(LocaleKeys.availableforAppointment.tr() + ":", (serviceItemModel.isAllowAppointment ?? false) ? "Yes" : "No", valueColor: Colors.green),
showItem(LocaleKeys.allowingWorkshopService.tr() + ":", (serviceItemModel.isAppointmentCompanyLoc ?? false) ? "Yes" : "No", valueColor: Colors.green),

@ -1,15 +1,16 @@
import 'dart:async';
import 'dart:developer';
import 'package:car_customer_app/views/dashboard/fragments/appointments_fragment.dart';
import 'package:car_customer_app/views/dashboard/fragments/home_fragment.dart';
import 'package:car_customer_app/views/dashboard/widgets/bottom_nav_bar.dart';
import 'package:flutter/material.dart';
import 'package:mc_common_app/utils/enums.dart';
import 'package:mc_common_app/view_models/dashboard_view_model_customer.dart';
import 'package:mc_common_app/views/common_fragments/ads_fragment.dart';
import 'package:mc_common_app/views/common_fragments/requests_fragment.dart';
import 'package:provider/provider.dart';
import 'fragments/branches_fragment.dart';
import 'package:mc_common_app/views/common_fragments/ads_fragment.dart';
class DashboardView extends StatefulWidget {
final DashboardRouteEnum dashboardRouteEnum;
@ -27,7 +28,7 @@ class _DashboardViewState extends State<DashboardView> {
@override
void initState() {
super.initState();
dashboardVM = Provider.of<DashboardVmCustomer>(context, listen: false);
dashboardVM = context.read<DashboardVmCustomer>();
scheduleMicrotask(() => dashboardVM.onRefresh(context, dashboardRouteEnum: widget.dashboardRouteEnum));
}

@ -48,10 +48,10 @@ class BranchesFragment extends StatelessWidget {
height: double.infinity,
child: Column(
children: [
if (appointmentsVM.branchesFilterOptions.isNotEmpty) ...[
if (appointmentsVM.branchesCategoriesFilterOptions.isNotEmpty) ...[
16.height,
FiltersList(
filterList: appointmentsVM.branchesFilterOptions,
filterList: appointmentsVM.branchesCategoriesFilterOptions,
onFilterTapped: (index, selectedFilterId) => appointmentsVM.applyFilterOnBranches(index: index),
),
],

@ -1,5 +1,7 @@
import 'package:car_customer_app/views/dashboard/widgets/drawer_widget.dart';
import 'package:car_customer_app/views/dashboard/widgets/my_recent_branches_widget.dart';
import 'package:car_customer_app/views/dashboard/widgets/my_services_categories_widget.dart';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:mc_common_app/config/routes.dart';
import 'package:mc_common_app/extensions/int_extensions.dart';
@ -15,7 +17,6 @@ import 'package:mc_common_app/widgets/common_widgets/app_bar.dart';
import 'package:mc_common_app/widgets/common_widgets/view_all_widget.dart';
import 'package:mc_common_app/widgets/extensions/extensions_widget.dart';
import 'package:provider/provider.dart';
import 'package:easy_localization/easy_localization.dart';
class HomeFragment extends StatelessWidget {
const HomeFragment({Key? key}) : super(key: key);
@ -67,51 +68,80 @@ class HomeFragment extends StatelessWidget {
context.read<AppointmentsVM>().applyFilterOnAppointmentsVM(appointmentStatusEnum: AppointmentStatusEnum.allAppointments);
},
).horPaddingMain(),
CommonAppointmentSliderWidget().toWhiteContainer(width: double.infinity, backgroundColor: Colors.transparent).margin(
left: 21,
right: 21,
),
7.height,
CommonAppointmentSliderWidget()
.toWhiteContainer(
width: double.infinity,
backgroundColor: Colors.transparent,
)
.margin(left: 21, right: 21),
// SERVICES SECTION
14.height,
Consumer(
builder: (BuildContext context, AppointmentsVM appointmentVM, Widget? child) {
if (appointmentVM.state == ViewState.busy) {
return Center(child: CircularProgressIndicator());
}
if (appointmentVM.myRecentBranches.isNotEmpty) {
if (appointmentVM.branchesCategoriesFilterOptions.isNotEmpty) {
return Column(
children: [
ViewAllWidget(
title: LocaleKeys.myRecentBranches.tr().toUpperCase(),
title: LocaleKeys.services.tr().toUpperCase(),
subTitle: '',
onSubtitleTapped: () {
// context.read<DashboardVmCustomer>().onNavbarTapped(0);
// context.read<AppointmentsVM>().applyFilterOnBranches(index: 0);
},
).horPaddingMain(),
MyRecentBranchesWidget(nearbyBranches: appointmentVM.myRecentBranches).horPaddingMain(),
],
);
}
if (appointmentVM.nearbyBranches.isNotEmpty) {
return Column(
children: [
ViewAllWidget(
title: LocaleKeys.myNearbyBranches.tr().toUpperCase(),
subTitle: LocaleKeys.view_all.tr(),
onSubtitleTapped: () {
context.read<DashboardVmCustomer>().onNavbarTapped(0);
context.read<AppointmentsVM>().applyFilterOnBranches(index: 0);
},
onSubtitleTapped: () {},
).horPaddingMain(),
MyRecentBranchesWidget(nearbyBranches: appointmentVM.nearbyBranches).horPaddingMain(),
MyServicesCategoriesWidget(homeCategories: appointmentVM.branchesCategoriesFilterOptions).horPaddingMain()
],
);
}
return SizedBox();
},
),
// NEARBY BRANCHES SECTION
// 7.height,
// Consumer(
// builder: (BuildContext context, AppointmentsVM appointmentVM, Widget? child) {
// if (appointmentVM.state == ViewState.busy) {
// return Center(child: CircularProgressIndicator());
// }
//
// if (appointmentVM.myRecentBranches.isNotEmpty) {
// return Column(
// children: [
// ViewAllWidget(
// title: LocaleKeys.myRecentBranches.tr().toUpperCase(),
// subTitle: '',
// onSubtitleTapped: () {
// // context.read<DashboardVmCustomer>().onNavbarTapped(0);
// // context.read<AppointmentsVM>().applyFilterOnBranches(index: 0);
// },
// ).horPaddingMain(),
// MyRecentBranchesWidget(nearbyBranches: appointmentVM.myRecentBranches).horPaddingMain(),
// ],
// );
// }
// if (appointmentVM.nearbyBranches.isNotEmpty) {
// return Column(
// children: [
// ViewAllWidget(
// title: LocaleKeys.myNearbyBranches.tr().toUpperCase(),
// subTitle: LocaleKeys.view_all.tr(),
// onSubtitleTapped: () {
// context.read<DashboardVmCustomer>().onNavbarTapped(0);
// context.read<AppointmentsVM>().applyFilterOnBranches(index: 0);
// },
// ).horPaddingMain(),
// MyRecentBranchesWidget(nearbyBranches: appointmentVM.nearbyBranches).horPaddingMain(),
// ],
// );
// }
//
// return SizedBox();
// },
// ),
// ADS SECTION
Consumer(
builder: (BuildContext context, AdVM adVM, Widget? child) {
if (adVM.state == ViewState.busy) {

@ -0,0 +1,58 @@
import 'package:flutter/material.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/general_models/widgets_models.dart';
import 'package:mc_common_app/view_models/appointments_view_model.dart';
import 'package:mc_common_app/view_models/dashboard_view_model_customer.dart';
import 'package:mc_common_app/widgets/extensions/extensions_widget.dart';
import 'package:provider/provider.dart';
class MyServicesCategoriesWidget extends StatelessWidget {
final List<FilterListModel> homeCategories;
const MyServicesCategoriesWidget({Key? key, required this.homeCategories}) : super(key: key);
@override
Widget build(BuildContext context) {
return SizedBox(
width: double.infinity,
height: 140,
child: ListView.builder(
itemCount: homeCategories.length,
scrollDirection: Axis.horizontal,
shrinkWrap: true,
itemBuilder: (BuildContext context, int index) {
FilterListModel category = homeCategories[index];
if (category.id == 0) {
return SizedBox();
}
return SizedBox(
width: 90,
child: Column(
children: [
category.iconUrl.buildNetworkImage(height: 73, width: 73, fit: BoxFit.cover).toCircle(borderRadius: 100),
9.height,
Flexible(
child: category.title.toText(
fontSize: 14,
textAlign: TextAlign.center,
maxLines: 2,
overflow: TextOverflow.ellipsis,
letterSpacing: -0.84,
height: 18 / 14,
),
),
],
),
).onPress(() {
final appointmentVM = context.read<AppointmentsVM>();
final dashboardCustomerVM = context.read<DashboardVmCustomer>();
context.read<DashboardVmCustomer>().onNavbarTapped(0);
dashboardCustomerVM.onNavbarTapped(0);
appointmentVM.applyFilterOnBranches(index: index);
});
},
),
);
}
}

@ -84,3 +84,4 @@ flutter:
# - asset: assets/fonts/Poppins-Medium.ttf
# For details regarding fonts from package dependencies,
# see https://flutter.dev/custom-fonts/#from-packages

Loading…
Cancel
Save