Architecture Integration and UI

merge-requests/2/head
FaizHashmiCS22 2 years ago
parent dd3e610f77
commit 7f4cf06626

@ -44,7 +44,7 @@ android {
defaultConfig { defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.example.car_customer_app" applicationId "com.example.car_customer_app"
minSdkVersion 16 minSdkVersion 20
targetSdkVersion 31 targetSdkVersion 31
versionCode flutterVersionCode.toInteger() versionCode flutterVersionCode.toInteger()
versionName flutterVersionName versionName flutterVersionName

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" width="29.159" height="24.616" viewBox="0 0 29.159 24.616">
<g id="promotion" transform="translate(-2 -3.116)">
<path id="Path_4626" data-name="Path 4626" d="M26.785,3.408a.292.292,0,0,0-.417-.263L11.455,10.236h.021V20.442h-.021l14.913,7.092a.292.292,0,0,0,.417-.263ZM10.019,20.078V10.6H6.544A4.644,4.644,0,0,0,2,15.339a4.722,4.722,0,0,0,3.191,4.525l2.395,7.663a.292.292,0,0,0,.278.2h3.945a.292.292,0,0,0,.278-.378L9.814,20.078ZM7.728,16.068a.729.729,0,0,0,.729-.729v-.208a.729.729,0,0,0-.729-.729H6.686a.729.729,0,0,0-.729.729v.208a.729.729,0,0,0,.729.729Z" transform="translate(0 0)" fill="#767676" fill-rule="evenodd"/>
<path id="Path_4627" data-name="Path 4627" d="M22.29,17.715a5.1,5.1,0,0,0,0-9.224ZM20.832,8.052a5.1,5.1,0,1,0,0,10.1Z" transform="translate(5.953 2.236)" fill="#767676" fill-rule="evenodd"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 878 B

@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" width="25.034" height="25.034" viewBox="0 0 25.034 25.034">
<g id="weekly-calendar-page-symbol" transform="translate(139)">
<path id="Path_4379" data-name="Path 4379" d="M22.53,0H2.5A2.511,2.511,0,0,0,0,2.5V22.53a2.512,2.512,0,0,0,2.5,2.5H22.53a2.512,2.512,0,0,0,2.5-2.5V2.5A2.511,2.511,0,0,0,22.53,0ZM6.756,22.031H2.921V18.62H6.756v3.411Zm0-4.555H2.921v-3.41H6.756v3.41ZM6.467,3.794A1.063,1.063,0,1,1,7.529,2.731,1.062,1.062,0,0,1,6.467,3.794Zm5.406,18.237H8.039V18.62h3.834Zm0-4.555H8.039v-3.41h3.834Zm0-4.552H8.039V9.514h3.834ZM11.455,2.731a1.062,1.062,0,1,1,1.062,1.062A1.062,1.062,0,0,1,11.455,2.731Zm5.54,14.745H13.159v-3.41H17v3.41Zm0-4.552H13.159V9.514H17v3.41ZM17.5,2.731a1.062,1.062,0,1,1,1.062,1.062A1.062,1.062,0,0,1,17.5,2.731Zm4.609,14.745H18.278v-3.41h3.835Zm0-4.552H18.278V9.514h3.835Z" transform="translate(-139)" fill="#767676"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 908 B

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="25.409" height="25.409" viewBox="0 0 25.409 25.409">
<path id="close_3_" data-name="close (3)" d="M10.63,9.119l7-7A1.164,1.164,0,1,0,15.98.477l-7,7-7-7A1.164,1.164,0,0,0,.341,2.123l7,7-7,7a1.164,1.164,0,1,0,1.646,1.646l7-7,7,7a1.164,1.164,0,1,0,1.646-1.646Zm0,0" transform="translate(-0.096 12.609) rotate(-45)" fill="#fff"/>
</svg>

After

Width:  |  Height:  |  Size: 382 B

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" width="23.889" height="10.642" viewBox="0 0 23.889 10.642">
<g id="Group_8170" data-name="Group 8170" transform="translate(-61.5 -50.884)">
<path id="Path_66" data-name="Path 66" d="M4.5,18H19.3" transform="translate(58.5 42.025)" fill="none" stroke="#2e303a" stroke-linecap="round" stroke-linejoin="round" stroke-width="3"/>
<path id="Path_67" data-name="Path 67" d="M4.5,9H25.389" transform="translate(58.5 43.384)" fill="none" stroke="#2e303a" stroke-linecap="round" stroke-linejoin="round" stroke-width="3"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 577 B

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="28.123" height="26.245" viewBox="0 0 28.123 26.245">
<path id="XMLID_219_" d="M28.984,15.637A2.077,2.077,0,0,1,27.025,17h-.716V27.309a.938.938,0,0,1-.937.937H19.748V21.685a4.687,4.687,0,0,0-9.374,0v6.562H4.749a.938.938,0,0,1-.937-.937V17H3.095a2.1,2.1,0,0,1-1.378-3.675L12.665,2.955a3.486,3.486,0,0,1,4.792,0L28.431,13.347A2.066,2.066,0,0,1,28.984,15.637Z" transform="translate(-0.999 -2.001)" fill="#273139"/>
</svg>

After

Width:  |  Height:  |  Size: 467 B

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="8.852" height="8.852" viewBox="0 0 8.852 8.852">
<path id="clock_7_" data-name="clock (7)" d="M4.426,0A4.426,4.426,0,1,0,8.852,4.426,4.431,4.431,0,0,0,4.426,0Zm2.1,6.715a.368.368,0,0,1-.521,0L4.165,4.871a.367.367,0,0,1-.108-.261v-2.4a.369.369,0,1,1,.738,0V4.458L6.531,6.194A.368.368,0,0,1,6.531,6.715Zm0,0" fill="#a9a9a9"/>
</svg>

After

Width:  |  Height:  |  Size: 380 B

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="12.375" height="9" viewBox="0 0 12.375 9">
<path id="next_3_" data-name="next (3)" d="M13.21,8.1,9.273,4.165a.562.562,0,1,0-.8.8l2.977,2.977H1.563a.562.562,0,1,0,0,1.125h9.892L8.477,12.04a.562.562,0,1,0,.8.8L13.21,8.9a.563.563,0,0,0,0-.8Z" transform="translate(-1 -4)" fill="#06161c"/>
</svg>

After

Width:  |  Height:  |  Size: 342 B

@ -0,0 +1,6 @@
<svg id="bell_2_" data-name="bell (2)" xmlns="http://www.w3.org/2000/svg" width="20.255" height="22.097" viewBox="0 0 20.255 22.097">
<path id="Path_4605" data-name="Path 4605" d="M358.833,25.324a.921.921,0,0,1-.921-.921,9.606,9.606,0,0,0-2.831-6.836.921.921,0,0,1,1.3-1.3,11.433,11.433,0,0,1,3.371,8.138A.921.921,0,0,1,358.833,25.324Zm0,0" transform="translate(-339.499 -15.305)" fill="#28323a"/>
<path id="Path_4606" data-name="Path 4606" d="M.921,25.324A.921.921,0,0,1,0,24.4a11.434,11.434,0,0,1,3.371-8.138.921.921,0,0,1,1.3,1.3A9.6,9.6,0,0,0,1.841,24.4.921.921,0,0,1,.921,25.324Zm0,0" transform="translate(0 -15.305)" fill="#28323a"/>
<path id="Path_4607" data-name="Path 4607" d="M39.174,15.572a6.167,6.167,0,0,1-2.19-4.719V8.286A6.45,6.45,0,0,0,31.46,1.915V.921a.921.921,0,0,0-1.841,0v.994a6.449,6.449,0,0,0-5.524,6.371v2.567a6.174,6.174,0,0,1-2.2,4.726,1.611,1.611,0,0,0,1.048,2.835H38.135a1.611,1.611,0,0,0,1.039-2.842Zm0,0" transform="translate(-20.411)" fill="#28323a"/>
<path id="Path_4608" data-name="Path 4608" d="M159.672,450.762A3.458,3.458,0,0,0,163.054,448h-6.765A3.458,3.458,0,0,0,159.672,450.762Zm0,0" transform="translate(-149.544 -428.665)" fill="#28323a"/>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" width="25.783" height="30.979" viewBox="0 0 25.783 30.979">
<g id="automobile-with-wrench" transform="translate(-30.265)">
<path id="Path_4647" data-name="Path 4647" d="M106.524,16.93c2.071,0,6.941-2.493,6.941-8.465,0-.833-.02-1.638-.089-2.4a7.177,7.177,0,0,0-1.182-3.839C111.214.845,109.5,0,106.524,0s-4.69.844-5.669,2.227a7.175,7.175,0,0,0-1.183,3.84c-.069.76-.089,1.565-.089,2.4C99.583,14.437,104.452,16.93,106.524,16.93ZM108.789,3.1l-.506,1.277a5.736,5.736,0,0,0-3.52,0L104.258,3.1A7.109,7.109,0,0,1,108.789,3.1ZM100.615,7.17c.08.175.42.847.946.91.6.073,1.608-2.141,4.963-2.146s4.358,2.219,4.963,2.146c.526-.063.866-.735.946-.91.016.429.022.862.022,1.3a7.548,7.548,0,0,1-2.37,5.732,6.062,6.062,0,0,1-3.56,1.723,6.062,6.062,0,0,1-3.56-1.723,7.547,7.547,0,0,1-2.371-5.732C100.593,8.032,100.6,7.6,100.615,7.17Z" transform="translate(-63.367)" fill="#767676"/>
<path id="Path_4648" data-name="Path 4648" d="M56.042,197.513c-.354-2.2-1.084-5.041-2.547-6.05-1-.689-4.486-2.552-5.974-3.347L47.5,188.1a.486.486,0,0,0-.53.046,6.325,6.325,0,0,1-2.539,1.226.486.486,0,0,0-.349.3l-.921,2.429-.922-2.429a.486.486,0,0,0-.349-.3,6.324,6.324,0,0,1-2.539-1.226.487.487,0,0,0-.53-.046c-1.471.786-5,2.687-5.995,3.357-1.684,1.135-2.421,5.241-2.551,6.053a.488.488,0,0,0,.022.24c.036.1.593,1.544,3.379,2.7a1.384,1.384,0,0,1,.615-.442,1.374,1.374,0,0,1-.749-1.955,4.071,4.071,0,0,1,6.959-.316h5.316a4.079,4.079,0,0,1,3.38-1.808h0a4.079,4.079,0,0,1,3.575,2.112A1.374,1.374,0,0,1,52.025,200a1.382,1.382,0,0,1,.624.448c2.779-1.16,3.335-2.6,3.371-2.7A.49.49,0,0,0,56.042,197.513Z" transform="translate(0 -171.901)" fill="#767676"/>
<path id="Path_4649" data-name="Path 4649" d="M97.425,297.952h0l-2.561,0a4.839,4.839,0,0,1,0-2.244l2.561,0a.173.173,0,0,0,.151-.257,2.872,2.872,0,0,0-5.184.319H85.634a2.869,2.869,0,0,0-5.185-.31.173.173,0,0,0,.152.256h0l2.561,0a4.839,4.839,0,0,1,0,2.244l-2.561,0a.173.173,0,0,0-.151.256,2.873,2.873,0,0,0,2.517,1.489h0a2.871,2.871,0,0,0,2.663-1.808h6.753a2.876,2.876,0,0,0,2.665,1.808h0a2.874,2.874,0,0,0,2.517-1.5.173.173,0,0,0-.152-.256Z" transform="translate(-45.857 -268.725)" fill="#767676"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="25.211" height="20.945" viewBox="0 0 25.211 20.945">
<path id="menu_6_" data-name="menu (6)" d="M-.551,81.687H21.76a1.772,1.772,0,0,1,0,3.484H-.551A1.617,1.617,0,0,1-2,83.429a1.617,1.617,0,0,1,1.45-1.742ZM21.76,83.193H-.551a.219.219,0,0,0-.2.236.219.219,0,0,0,.2.236H21.76a.24.24,0,0,0,0-.473ZM-.551,72.957H21.76a1.772,1.772,0,0,1,0,3.484H-.551A1.617,1.617,0,0,1-2,74.7a1.617,1.617,0,0,1,1.45-1.742ZM21.76,74.462H-.551a.219.219,0,0,0-.2.236.219.219,0,0,0,.2.236H21.76a.24.24,0,0,0,0-.473ZM-.551,90.418H21.76a1.772,1.772,0,0,1,0,3.484H-.551A1.617,1.617,0,0,1-2,92.16a1.617,1.617,0,0,1,1.45-1.742ZM21.76,91.923H-.551a.219.219,0,0,0-.2.236.219.219,0,0,0,.2.236H21.76a.24.24,0,0,0,0-.473ZM-.551,74.935H21.76a.24.24,0,0,0,0-.473H-.551a.219.219,0,0,0-.2.236.219.219,0,0,0,.2.236ZM21.76,83.193H-.551a.219.219,0,0,0-.2.236.219.219,0,0,0,.2.236H21.76a.24.24,0,0,0,0-.473Zm0,8.731H-.551a.219.219,0,0,0-.2.236.219.219,0,0,0,.2.236H21.76a.24.24,0,0,0,0-.473Z" transform="translate(2.001 -72.956)" fill="#767676" fill-rule="evenodd"/>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

@ -1,7 +1,9 @@
import 'package:mc_common_app/config/dependencies.dart'; import 'package:mc_common_app/config/dependencies.dart';
class LocalDependencies { class CustomerDependencies {
static void addDependencies() { static void addDependencies() {
AppDependencies.addDependencies(); AppDependencies.addDependencies();
} }
} }

@ -0,0 +1,9 @@
import 'package:car_customer_app/views/dashboard/dashboard_page.dart';
import 'package:flutter/cupertino.dart';
import 'package:mc_common_app/config/routes.dart';
class CustomerAppRoutes {
static final Map<String, WidgetBuilder> routes = {
AppRoutes.dashboard: (context) => DashboardPage(),
};
}

@ -1,7 +1,10 @@
import 'package:car_customer_app/config/dependencies.dart'; import 'package:car_customer_app/config/customer_dependencies.dart';
import 'package:car_customer_app/config/customer_routes.dart';
import 'package:car_customer_app/view_models/dashboard_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/app_state_cm.dart'; import 'package:mc_common_app/classes/app_state_cm.dart';
import 'package:mc_common_app/services/services.dart';
import 'package:mc_common_app/theme/app_theme.dart'; import 'package:mc_common_app/theme/app_theme.dart';
import 'package:mc_common_app/config/dependencies.dart'; import 'package:mc_common_app/config/dependencies.dart';
import 'package:mc_common_app/config/routes.dart'; import 'package:mc_common_app/config/routes.dart';
@ -17,8 +20,9 @@ import 'generated/codegen_loader.g.dart';
Future<void> main() async { Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized(); WidgetsFlutterBinding.ensureInitialized();
LocalDependencies.addDependencies(); CustomerDependencies.addDependencies();
await EasyLocalization.ensureInitialized(); await EasyLocalization.ensureInitialized();
CustomerAppRoutes.routes.addAll(AppRoutes.routes);
runApp( runApp(
EasyLocalization( EasyLocalization(
supportedLocales: const [Locale('ar', 'SA'), Locale('en', 'US')], supportedLocales: const [Locale('ar', 'SA'), Locale('en', 'US')],
@ -31,12 +35,12 @@ Future<void> main() async {
ChangeNotifierProvider<BaseVM>( ChangeNotifierProvider<BaseVM>(
create: (_) => BaseVM(), create: (_) => BaseVM(),
), ),
// ChangeNotifierProvider<DashboardVM>( ChangeNotifierProvider<DashboardVM>(
// create: (_) => DashboardVM( create: (_) => DashboardVM(
// userRepo: injector.get<UserRepo>(), userRepo: injector.get<UserRepo>(),
// commonServices: injector.get<CommonServices>(), commonServices: injector.get<CommonServices>(),
// ), ),
// ), ),
ChangeNotifierProvider<UserVM>( ChangeNotifierProvider<UserVM>(
create: (_) => UserVM(userRepo: injector.get<UserRepo>()), create: (_) => UserVM(userRepo: injector.get<UserRepo>()),
), ),
@ -72,7 +76,7 @@ class MyApp extends StatelessWidget {
supportedLocales: context.supportedLocales, supportedLocales: context.supportedLocales,
locale: context.locale, locale: context.locale,
initialRoute: AppRoutes.initialRoute, initialRoute: AppRoutes.initialRoute,
routes: AppRoutes.routes, routes: CustomerAppRoutes.routes,
); );
}, },
); );

@ -3,6 +3,7 @@ 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:car_customer_app/views/dashboard/widgets/bottom_nav_bar.dart';
import 'package:car_customer_app/views/dashboard/widgets/drawer_widget.dart'; import 'package:car_customer_app/views/dashboard/widgets/drawer_widget.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:mc_common_app/widgets/app_bar.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
class DashboardPage extends StatefulWidget { class DashboardPage extends StatefulWidget {

@ -4,6 +4,7 @@ import 'package:car_customer_app/views/dashboard/widgets/my_branches_widget.dart
import 'package:car_customer_app/views/dashboard/widgets/view_all_widget.dart'; import 'package:car_customer_app/views/dashboard/widgets/view_all_widget.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/extensions/int_extensions.dart';
import 'package:mc_common_app/widgets/extensions/extensions_widget.dart';
class HomeFragment extends StatelessWidget { class HomeFragment extends StatelessWidget {
const HomeFragment({Key? key}) : super(key: key); const HomeFragment({Key? key}) : super(key: key);
@ -15,22 +16,22 @@ class HomeFragment extends StatelessWidget {
height: double.infinity, height: double.infinity,
child: SingleChildScrollView( child: SingleChildScrollView(
child: Padding( child: Padding(
padding: const EdgeInsets.only(top: 8, left: 21, right: 21, bottom: 21), padding: const EdgeInsets.only(top: 8),
child: Column( child: Column(
mainAxisSize: MainAxisSize.max, mainAxisSize: MainAxisSize.max,
children: [ children: [
ViewAllWidget(title: "Upcoming Appointment".toUpperCase(), subTitle: "View All"), ViewAllWidget(title: "Upcoming Appointment".toUpperCase(), subTitle: "View All").horPaddingMain(),
const AppointmentSliderWidget(), const AppointmentSliderWidget(),
20.height, 7.height,
ViewAllWidget(title: "My Recent Service Providers".toUpperCase(), subTitle: "View All"), ViewAllWidget(title: "My Recent Service Providers".toUpperCase(), subTitle: "View All").horPaddingMain(),
const ServiceProviderWidget(), const ServiceProviderWidget().horPaddingMain(),
20.height, 15.height,
ViewAllWidget(title: "My Active Ads".toUpperCase(), subTitle: "View All"), ViewAllWidget(title: "My Active Ads".toUpperCase(), subTitle: "View All").horPaddingMain(),
// todo: we will replace this count with the sublist of ads // todo: we will replace this count with the sublist of ads
const AdWidget(count: 1), const AdWidget(count: 1).horPaddingMain(),
20.height, 20.height,
ViewAllWidget(title: "My Recommended Ads".toUpperCase(), subTitle: "View All"), ViewAllWidget(title: "My Recommended Ads".toUpperCase(), subTitle: "View All").horPaddingMain(),
const AdWidget(count: 2), const AdWidget(count: 2).horPaddingMain(),
], ],
), ),
), ),

@ -1,4 +1,4 @@
import 'package:carousel_slider/carousel_slider.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.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';
@ -8,67 +8,153 @@ import 'package:mc_common_app/widgets/extensions/extensions_widget.dart';
class AppointmentSliderWidget extends StatelessWidget { class AppointmentSliderWidget extends StatelessWidget {
const AppointmentSliderWidget({Key? key}) : super(key: key); const AppointmentSliderWidget({Key? key}) : super(key: key);
@override Widget buildAppointmentContainerForProvider() {
Widget build(BuildContext context) { return Container(
return Column( margin: EdgeInsets.only(bottom: 21, left: 21, right: 21, top: 7),
children: [ child: Column(
Row( children: [
children: [ Row(
Expanded( children: [
child: Column( Expanded(
crossAxisAlignment: CrossAxisAlignment.start, child: Column(
mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ mainAxisAlignment: MainAxisAlignment.start,
"Olaya Brach".toText( children: [
color: MyColors.lightTextColor, "Olaya Brach".toText(
isBold: true, color: MyColors.lightTextColor,
), isBold: true,
"Abdullah Alhbas".toText( ),
isBold: true, "Abdullah Alhbas".toText(
fontSize: 14, isBold: true,
), fontSize: 14,
Row( ),
children: [ Row(
"Appt. On:".toText( children: [
color: MyColors.lightTextColor, "Appt. On:".toText(
), color: MyColors.lightTextColor,
2.width, ),
"19-Mar-2023 11:48 AM".toText(), 2.width,
], "19-Mar-2023 11:48 AM".toText(),
],
),
],
),
),
"1+ Requests".toText(fontSize: 10).toContainer(
borderRadius: 15,
backgroundColor: MyColors.lightGreyEAColor,
padding: const EdgeInsets.symmetric(
vertical: 6,
horizontal: 12,
),
), ),
], ],
),
8.height,
Row(
crossAxisAlignment: CrossAxisAlignment.end,
children: [
Expanded(
child: Column(
children: [
showServices("Maintenance"),
2.height,
showServices("Accessories and Modification"),
],
),
),
const Icon(
Icons.arrow_forward,
),
],
),
],
).toWhiteContainer(width: double.infinity, allPading: 12),
);
}
Widget buildAppointmentSliderForConsumer() {
return Container(
margin: EdgeInsets.only(bottom: 21, left: 21, right: 21, top: 7),
child: Column(
children: [
Row(
children: [
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.start,
children: [
"Olaya Brach".toText(
color: MyColors.lightTextColor,
isBold: true,
),
"Abdullah Alhbas".toText(
isBold: true,
fontSize: 14,
),
Row(
children: [
"Appt. On:".toText(
color: MyColors.lightTextColor,
),
2.width,
"19-Mar-2023 11:48 AM".toText(),
],
),
],
),
), ),
), "1+ Requests".toText(fontSize: 10).toContainer(
"1+ Requests".toText(fontSize: 10).toContainer( borderRadius: 15,
borderRadius: 15, backgroundColor: MyColors.lightGreyEAColor,
backgroundColor: MyColors.lightGreyEAColor, padding: const EdgeInsets.symmetric(
padding: const EdgeInsets.symmetric( vertical: 6,
vertical: 6, horizontal: 12,
horizontal: 12, ),
), ),
],
),
8.height,
Row(
crossAxisAlignment: CrossAxisAlignment.end,
children: [
Expanded(
child: Column(
children: [
showServices("Maintenance"),
2.height,
showServices("Accessories and Modification"),
],
), ),
],
),
8.height,
Row(
crossAxisAlignment: CrossAxisAlignment.end,
children: [
Expanded(
child: Column(
children: [
showServices("Maintenance"),
2.height,
showServices("Accessories and Modification"),
],
), ),
), const Icon(
const Icon( Icons.arrow_forward,
Icons.arrow_forward, ),
), ],
], ),
],
).toWhiteContainer(width: double.infinity, allPading: 12),
);
}
@override
Widget build(BuildContext context) {
return CarouselSlider.builder(
options: CarouselOptions(
height: 160,
viewportFraction: 1.0,
enlargeCenterPage: true,
enableInfiniteScroll: false,
// onPageChanged: (index) {
// setState(() {
// _current = index;
// });
// },
), ),
], itemCount: 10,
).toWhiteContainer(width: double.infinity, allPading: 0); itemBuilder: (BuildContext context, int itemIndex, int pageViewIndex) => buildAppointmentSliderForConsumer());
} }
Widget showServices(String title) { Widget showServices(String title) {

@ -11,7 +11,7 @@ class ServiceProviderWidget extends StatelessWidget {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return SizedBox( return SizedBox(
width: double.infinity, width: double.infinity,
height: 150, height: 140,
child: ListView.builder( child: ListView.builder(
itemCount: 9, itemCount: 9,
scrollDirection: Axis.horizontal, scrollDirection: Axis.horizontal,

@ -13,7 +13,7 @@ class ViewAllWidget extends StatelessWidget {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Container( return Container(
width: double.infinity, width: double.infinity,
padding: const EdgeInsets.only(bottom: 10), padding: const EdgeInsets.only(bottom: 7),
child: Row( child: Row(
children: [ children: [
Expanded(child: title.toText(isBold: true, fontSize: 18)), Expanded(child: title.toText(isBold: true, fontSize: 18)),

@ -36,6 +36,8 @@ dependencies:
cupertino_icons: ^1.0.2 cupertino_icons: ^1.0.2
flutter_password_strength: ^0.1.6 flutter_password_strength: ^0.1.6
carousel_slider: ^4.2.1
mc_common_app: mc_common_app:
path: D:/Development/car_common_app path: D:/Development/car_common_app

Loading…
Cancel
Save