From 0b63e00a14936edf5b778cf491a3e823038b16e1 Mon Sep 17 00:00:00 2001 From: faizatflutter Date: Tue, 3 Dec 2024 02:29:49 +0300 Subject: [PATCH 1/3] 294, 295 Fixed --- .../branches/components/items_list_sheet.dart | 15 ++++++++------- lib/views/dashboard/dashboard_view.dart | 5 +++-- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/lib/views/branches/components/items_list_sheet.dart b/lib/views/branches/components/items_list_sheet.dart index 92cb113..3da3178 100644 --- a/lib/views/branches/components/items_list_sheet.dart +++ b/lib/views/branches/components/items_list_sheet.dart @@ -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 { void initState() { super.initState(); scheduleMicrotask(() { - context.read().getServiceItems(widget.serviceProviderServiceId); + context.read().getServiceItems(serviceId: widget.serviceProviderServiceId); }); } @@ -61,7 +61,8 @@ class _ItemsListSheetState extends State { 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), diff --git a/lib/views/dashboard/dashboard_view.dart b/lib/views/dashboard/dashboard_view.dart index 5a51fa3..8592e8c 100644 --- a/lib/views/dashboard/dashboard_view.dart +++ b/lib/views/dashboard/dashboard_view.dart @@ -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; From f9584c14ccb7bdd5bc978d98bd1e361c4b8b4f2d Mon Sep 17 00:00:00 2001 From: faizatflutter Date: Thu, 5 Dec 2024 01:58:30 +0300 Subject: [PATCH 2/3] Added Services Widget on HomeScreen --- lib/views/dashboard/dashboard_view.dart | 2 +- .../fragments/branches_fragment.dart | 4 +- .../dashboard/fragments/home_fragment.dart | 41 +++++++++++-- .../my_services_categories_widget.dart | 58 +++++++++++++++++++ pubspec.yaml | 6 +- 5 files changed, 101 insertions(+), 10 deletions(-) create mode 100644 lib/views/dashboard/widgets/my_services_categories_widget.dart diff --git a/lib/views/dashboard/dashboard_view.dart b/lib/views/dashboard/dashboard_view.dart index 8592e8c..7c339a0 100644 --- a/lib/views/dashboard/dashboard_view.dart +++ b/lib/views/dashboard/dashboard_view.dart @@ -28,7 +28,7 @@ class _DashboardViewState extends State { @override void initState() { super.initState(); - dashboardVM = Provider.of(context, listen: false); + dashboardVM = context.read(); scheduleMicrotask(() => dashboardVM.onRefresh(context, dashboardRouteEnum: widget.dashboardRouteEnum)); } diff --git a/lib/views/dashboard/fragments/branches_fragment.dart b/lib/views/dashboard/fragments/branches_fragment.dart index eb01a1a..2265acc 100644 --- a/lib/views/dashboard/fragments/branches_fragment.dart +++ b/lib/views/dashboard/fragments/branches_fragment.dart @@ -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), ), ], diff --git a/lib/views/dashboard/fragments/home_fragment.dart b/lib/views/dashboard/fragments/home_fragment.dart index 7fd8a1d..97b33e2 100644 --- a/lib/views/dashboard/fragments/home_fragment.dart +++ b/lib/views/dashboard/fragments/home_fragment.dart @@ -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,10 +68,38 @@ class HomeFragment extends StatelessWidget { context.read().applyFilterOnAppointmentsVM(appointmentStatusEnum: AppointmentStatusEnum.allAppointments); }, ).horPaddingMain(), - CommonAppointmentSliderWidget().toWhiteContainer(width: double.infinity, backgroundColor: Colors.transparent).margin( - left: 21, - right: 21, - ), + 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.branchesCategoriesFilterOptions.isNotEmpty) { + return Column( + children: [ + ViewAllWidget( + title: LocaleKeys.services.tr().toUpperCase(), + subTitle: '', + onSubtitleTapped: () {}, + ).horPaddingMain(), + MyServicesCategoriesWidget(homeCategories: appointmentVM.branchesCategoriesFilterOptions).horPaddingMain() + ], + ); + } + + return SizedBox(); + }, + ), + + // NEARBY BRANCHES SECTION 7.height, Consumer( builder: (BuildContext context, AppointmentsVM appointmentVM, Widget? child) { @@ -112,6 +141,8 @@ class HomeFragment extends StatelessWidget { return SizedBox(); }, ), + + // ADS SECTION Consumer( builder: (BuildContext context, AdVM adVM, Widget? child) { if (adVM.state == ViewState.busy) { diff --git a/lib/views/dashboard/widgets/my_services_categories_widget.dart b/lib/views/dashboard/widgets/my_services_categories_widget.dart new file mode 100644 index 0000000..4963163 --- /dev/null +++ b/lib/views/dashboard/widgets/my_services_categories_widget.dart @@ -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 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(); + final dashboardCustomerVM = context.read(); + context.read().onNavbarTapped(0); + dashboardCustomerVM.onNavbarTapped(0); + appointmentVM.applyFilterOnBranches(index: index); + }); + }, + ), + ); + } +} diff --git a/pubspec.yaml b/pubspec.yaml index 133cf23..88e27c9 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -36,8 +36,9 @@ dependencies: cupertino_icons: ^1.0.2 mc_common_app: -# path: D:\Development\car_common_app - path: /Volumes/Data/Projects/Flutter/car_common_app + # path: D:\Development\car_common_app + # path: /Volumes/Data/Projects/Flutter/car_common_app + path: /Users/faizhashmi/Development/Projects/MyProjects/CloudSolutions/car_common_app dev_dependencies: flutter_test: @@ -84,3 +85,4 @@ flutter: # - asset: assets/fonts/Poppins-Medium.ttf # For details regarding fonts from package dependencies, # see https://flutter.dev/custom-fonts/#from-packages + From 8a2f2fbdb6dc4e7b3635a4a0f2a9c761327d5355 Mon Sep 17 00:00:00 2001 From: Faiz Hashmi Date: Thu, 5 Dec 2024 18:00:41 +0300 Subject: [PATCH 3/3] Dropped the JIRA Count to 23 --- .../dashboard/fragments/home_fragment.dart | 83 +++++++++---------- pubspec.yaml | 4 +- 2 files changed, 43 insertions(+), 44 deletions(-) diff --git a/lib/views/dashboard/fragments/home_fragment.dart b/lib/views/dashboard/fragments/home_fragment.dart index 97b33e2..5184911 100644 --- a/lib/views/dashboard/fragments/home_fragment.dart +++ b/lib/views/dashboard/fragments/home_fragment.dart @@ -94,53 +94,52 @@ class HomeFragment extends StatelessWidget { ], ); } - 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().onNavbarTapped(0); - // context.read().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().onNavbarTapped(0); - context.read().applyFilterOnBranches(index: 0); - }, - ).horPaddingMain(), - MyRecentBranchesWidget(nearbyBranches: appointmentVM.nearbyBranches).horPaddingMain(), - ], - ); - } - - return SizedBox(); - }, - ), + // 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().onNavbarTapped(0); + // // context.read().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().onNavbarTapped(0); + // context.read().applyFilterOnBranches(index: 0); + // }, + // ).horPaddingMain(), + // MyRecentBranchesWidget(nearbyBranches: appointmentVM.nearbyBranches).horPaddingMain(), + // ], + // ); + // } + // + // return SizedBox(); + // }, + // ), // ADS SECTION Consumer( diff --git a/pubspec.yaml b/pubspec.yaml index 88e27c9..72eb733 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -37,8 +37,8 @@ dependencies: mc_common_app: # path: D:\Development\car_common_app - # path: /Volumes/Data/Projects/Flutter/car_common_app - path: /Users/faizhashmi/Development/Projects/MyProjects/CloudSolutions/car_common_app + path: /Volumes/Data/Projects/Flutter/car_common_app +# path: /Users/faizhashmi/Development/Projects/MyProjects/CloudSolutions/car_common_app dev_dependencies: flutter_test: