Added Services Widget on HomeScreen

aamir_dev
faizatflutter 11 months ago
parent 0b63e00a14
commit f9584c14cc

@ -28,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,10 +68,38 @@ 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,
),
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) {

@ -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);
});
},
),
);
}
}

@ -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

Loading…
Cancel
Save