Added Packages Stuff
parent
d59bed59ce
commit
95814fca30
@ -0,0 +1,294 @@
|
||||
// DO NOT EDIT. This is code generated via package:easy_localization/generate.dart
|
||||
|
||||
// ignore_for_file: prefer_single_quotes
|
||||
|
||||
import 'dart:ui';
|
||||
|
||||
import 'package:easy_localization/easy_localization.dart' show AssetLoader;
|
||||
|
||||
class CodegenLoader extends AssetLoader{
|
||||
const CodegenLoader();
|
||||
|
||||
@override
|
||||
Future<Map<String, dynamic>> load(String fullPath, Locale locale ) {
|
||||
return Future.value(mapLocales[locale.toString()]);
|
||||
}
|
||||
|
||||
static const Map<String,dynamic> ar_SA = {
|
||||
"firstTimeLogIn": "تسجيل الدخول لأول مره",
|
||||
"signUp": "التسجيل",
|
||||
"changeMobile": "تغيير رقم الجوال",
|
||||
"notifications": "الاشعارات",
|
||||
"general": "عام",
|
||||
"defineLicences": "تحديد الرخص",
|
||||
"dealershipSettings": "اعدادات البيع",
|
||||
"changePassword": "تغيير كلمة المرور",
|
||||
"retrievePassword": "استرجاع كلمة المرور",
|
||||
"changeEmail": "تغيير الايميل",
|
||||
"verify": "تحقق",
|
||||
"verified": "تم التحقق",
|
||||
"signOut": "تسجيل خروج",
|
||||
"enterEmail": "ادخل الايميل",
|
||||
"enterNewEmail": "ادخل ايميل جديد",
|
||||
"enterCurrentPassword": "كلمة المرور الحاليه",
|
||||
"enterNewPassword": "كلمة المرور الجديده",
|
||||
"enterOldPassword": "كلمة المرور القديمه",
|
||||
"confirm": "تأكيد",
|
||||
"enterNewPhoneNumber": "رقم جوال جديد",
|
||||
"completeProfile": "الملف الشخصي",
|
||||
"continu": "استمرار",
|
||||
"confirmPassword": "تأكيد كلمة المرور",
|
||||
"createPassword": "انشاء كلمة مرور جديده",
|
||||
"email": "ايميل",
|
||||
"firstName": "الأسم الأول *",
|
||||
"surname": "اسم العائله *",
|
||||
"confirmPass": "تأكيد كلمة المرور *",
|
||||
"createPass": "انشاء كلمة مرور جديده *",
|
||||
"newPassword": " كلمة مرور جديده",
|
||||
"forgetPassword": "نسيت كلمة المرور",
|
||||
"forgetPasswordRecover": "نسيت كلمة المرور؟ استعادة",
|
||||
"editAccount": "تعديل الحساب",
|
||||
"change": "تغيير",
|
||||
"verifyAccount": "التحقق من الحساب",
|
||||
"login": "تسجيل دخول",
|
||||
"welcomeMessage": "مرحبا",
|
||||
"forgetPass": "نسيت كلمة المرور ؟",
|
||||
"enterPhoneNumber": "رقم جوال ",
|
||||
"phoneNumberVerified": "تم التحقق من الجوال",
|
||||
"verifyNewPassword": "التحقق من كلمة المرور",
|
||||
"EnterPass": "ادخل كلمة المرور",
|
||||
"alreadySigned": " تم تسجيل الدخول",
|
||||
"emailChangedSuccessfully": "تم تغيير الايميل بنجاح",
|
||||
"passwordIsUpdated": "تم تحجيث كلمة المرور",
|
||||
"passwordShouldContains": "كلمة المرور يجب ان تحتوي على رمز رقم حرف كبير حرف صغير",
|
||||
" successfullyRegistered": "تم التسجيل بنجاح",
|
||||
"pleaseEnterSamePassword": "ادخل كلمة مرور مطابقه",
|
||||
"firstNameMandatory": "ادخل الأسم الأول ",
|
||||
"surnameNameMandatory": "ادخل اسم العائله",
|
||||
"passwordNameMandatory": "ادخل كلمة المرور",
|
||||
"enterValidEmail": "ادخل ايميل صحيح",
|
||||
"pleaseAcceptTerms": "يجب الموافقه على الشروط",
|
||||
"emailVerified": "تم التحقق من الايميل بنجاح",
|
||||
"selectMethod": "اختر",
|
||||
"emailAddress": "ايميل",
|
||||
"loginSelection": "اختر",
|
||||
"selectCountryCode": "اختر رمز الدوله",
|
||||
"selectProviderRole": "اختر نوع الخدمه",
|
||||
"addPhoneNo": "اضف الهاتف",
|
||||
"onlyCustomerApp": "نأسف هذا التطبيق فقط للعملاء",
|
||||
"imageUploaded": "تم تحميل الصوره",
|
||||
"fileLarger": "1KB حجم الملف اكبر من",
|
||||
"account": "الحساب",
|
||||
"edit": "تعديل",
|
||||
"imageDeleted": "تم حذف الصوره",
|
||||
"dashboard": "الصفحه الرئيسيه",
|
||||
"termsOfService": "من خلال إنشاء حساب فإنك توافق على",
|
||||
"userInformation": "معلومات المتسخدم",
|
||||
"faceRecognition": "تحقق مع بصمة الوجه",
|
||||
"fingerPrint": "تحقق مع بصمة الاصبع",
|
||||
"whatsapp": "تحقق مع Whatsapp",
|
||||
"SMS": "رسائل قصيره",
|
||||
"selectRole": "حدد الدور",
|
||||
"userRoleOrTitle": "عنوان المستخدم",
|
||||
"codeSentToEmail": "تم ارسال الرمز للايميل",
|
||||
"number": "موبايل",
|
||||
"english": "English",
|
||||
"title": "Hello",
|
||||
"msg": "Hello {} in the {} world ",
|
||||
"msg_named": "{} are written in the {lang} language",
|
||||
"clickMe": "Click me",
|
||||
"profile": {
|
||||
"reset_password": {
|
||||
"label": "Reset Password",
|
||||
"username": "Username",
|
||||
"password": "password"
|
||||
}
|
||||
},
|
||||
"clicked": {
|
||||
"zero": "You clicked {} times!",
|
||||
"one": "You clicked {} time!",
|
||||
"two": "You clicked {} times!",
|
||||
"few": "You clicked {} times!",
|
||||
"many": "You clicked {} times!",
|
||||
"other": "You clicked {} times!"
|
||||
},
|
||||
"amount": {
|
||||
"zero": "Your amount : {} ",
|
||||
"one": "Your amount : {} ",
|
||||
"two": "Your amount : {} ",
|
||||
"few": "Your amount : {} ",
|
||||
"many": "Your amount : {} ",
|
||||
"other": "Your amount : {} "
|
||||
},
|
||||
"gender": {
|
||||
"male": "Hi man ;) ",
|
||||
"female": "Hello girl :)",
|
||||
"with_arg": {
|
||||
"male": "Hi man ;) {}",
|
||||
"female": "Hello girl :) {}"
|
||||
}
|
||||
},
|
||||
"reset_locale": "Reset Language",
|
||||
"welcomeDes": "أنت مكان واحد لكل ما تحتاجه سيارتك",
|
||||
"log_in": "تسجيل الدخول",
|
||||
"send": "إرسال",
|
||||
"phoneNumber": "رقم الهاتف",
|
||||
"forgetPasswordQ": "نسيت كلمة المرور؟",
|
||||
"recover": "استعادة",
|
||||
"retrivePassword": "استرجع كلمة المرور بإحدى الطرق التالية",
|
||||
"retriveOnPhone": "سوف نرسل الاختيار إلى رقم هاتفك المحمول المسجل",
|
||||
"retriveOnEmail": "سوف نرسل الاختيار إلى عنوان بريدك الإلكتروني المسجل",
|
||||
"enterPhoneForVerfication": "الرجاء إدخال رقم هاتفك وسنرسل لك رمز التحقق",
|
||||
"welcomeBack": "مرحبًا بعودتك!!!",
|
||||
"selectYourCountry": "اختر بلدك",
|
||||
"chooseCountry": "اختر الدوله",
|
||||
"terms": "بنود الخدمة وخصوصية السياسة",
|
||||
"profileMsg": "أدخل التفاصيل أدناه وأكمل معلومات الملف الشخصي",
|
||||
"save": "حفظ",
|
||||
"insert_otp_code": "ادخل الرمز",
|
||||
"type_code": "الرجاء كتابة الرمز الذي أرسلناه إلى",
|
||||
"resend_code": "أعد إرسال الرمز",
|
||||
"check_code": "التحقق من الشفرة",
|
||||
"time_will_expire": "إعادة إرسال الرمز بتنسيق",
|
||||
"sec": "ثانية"
|
||||
};
|
||||
static const Map<String,dynamic> en_US = {
|
||||
"firstTimeLogIn": "First Time Log In",
|
||||
"signUp": "Sign Up",
|
||||
"changeMobile": "Change Mobile",
|
||||
"notifications": "Notifications",
|
||||
"general": "General",
|
||||
"defineLicences": "Define Licences",
|
||||
"dealershipSettings": "Dealership Settings",
|
||||
"changePassword": "Change Password",
|
||||
"retrievePassword": "Retrieve Password",
|
||||
"changeEmail": "Change Email",
|
||||
"verify": "Verify",
|
||||
"verified": "Verified",
|
||||
"signOut": "Sign Out",
|
||||
"enterEmail": "Enter Email",
|
||||
"enterNewEmail": "Enter New Email",
|
||||
"enterNewPassword": "Enter New Password",
|
||||
"enterCurrentPassword": "Enter Current Password",
|
||||
"enterOldPassword": "Enter Old Password",
|
||||
"confirm": "Confirm",
|
||||
"completeProfile": "Complete Profile",
|
||||
"enterNewPhoneNumber": "Enter New Phone Number",
|
||||
"enterPhoneNumber": "Enter Phone Number",
|
||||
"continu": "Continue",
|
||||
"confirmPassword": "Confirm Password",
|
||||
"createPassword": "Create Password",
|
||||
"email": "Email",
|
||||
"firstName": "First Name *",
|
||||
"surname": "Surname *",
|
||||
"confirmPass": "Confirm Password *",
|
||||
"createPass": "Create Password *",
|
||||
"newPassword": "New Password",
|
||||
"forgetPassword": "Forget Password",
|
||||
"forgetPasswordRecover": "Forget Password? Recover",
|
||||
"editAccount": "Edit Account",
|
||||
"change": "Change",
|
||||
"verifyAccount": "Verify Account",
|
||||
"login": "Log In",
|
||||
"welcomeMessage": "Welcome Message",
|
||||
"forgetPass": "Forget Password ?",
|
||||
"phoneNumberVerified": "Phone Number Verified",
|
||||
"verifyNewPassword": "Verify New Password",
|
||||
"EnterPass": "Enter Password ?",
|
||||
"alreadySigned": " Already Signed Up and Logged In",
|
||||
"emailChangedSuccessfully": "Email is Changed Successfully",
|
||||
"passwordIsUpdated": "Password is Updated",
|
||||
"passwordShouldContains": "Password Should contains Character, Number, Capital and small letters,",
|
||||
" successfullyRegistered": " Successfully Registered, Please login once,",
|
||||
"pleaseEnterSamePassword": "Please enter same password",
|
||||
"firstNameMandatory": "First name is mandatory",
|
||||
"surnameNameMandatory": "Surname is mandatory",
|
||||
"passwordNameMandatory": "Password is mandatory",
|
||||
"enterValidEmail": "Enter Valid Email",
|
||||
"pleaseAcceptTerms": "Please accept terms",
|
||||
"emailVerified": "Email is verified successfully",
|
||||
"selectMethod": "Select Method",
|
||||
"emailAddress": "Email Address",
|
||||
"loginSelection": "Login Selection",
|
||||
"selectCountryCode": "Please select Country Code",
|
||||
"selectProviderRole": "Please select Provider Role",
|
||||
"addPhoneNo": "Please add Phone No",
|
||||
"onlyCustomerApp": "Sorry, Only Customer's can log in this app",
|
||||
"imageUploaded": "Image is uploaded",
|
||||
"fileLarger": "File is larger then 1KB",
|
||||
"account": "Account",
|
||||
"edit": "EDIT",
|
||||
"imageDeleted": "Image is Deleted",
|
||||
"dashboard": "Dashboard/Main Page",
|
||||
"termsOfService": "By creating an account you agree to our",
|
||||
"userInformation": "User Information",
|
||||
"faceRecognition": "Face Recognition",
|
||||
"fingerPrint": "Finger Print",
|
||||
"whatsapp": "With Whatsapp",
|
||||
"SMS": "With SMS",
|
||||
"selectRole": "Select Role",
|
||||
"userRoleOrTitle": "User role or title",
|
||||
"codeSentToEmail": "Code is sent to email",
|
||||
"number": "Number",
|
||||
"english": "عربي",
|
||||
"title": "Hello",
|
||||
"msg": "Hello {} in the {} world ",
|
||||
"msg_named": "{} are written in the {lang} language",
|
||||
"clickMe": "Click me",
|
||||
"profile": {
|
||||
"reset_password": {
|
||||
"label": "Reset Password",
|
||||
"username": "Username",
|
||||
"password": "password"
|
||||
}
|
||||
},
|
||||
"clicked": {
|
||||
"zero": "You clicked {} times!",
|
||||
"one": "You clicked {} time!",
|
||||
"two": "You clicked {} times!",
|
||||
"few": "You clicked {} times!",
|
||||
"many": "You clicked {} times!",
|
||||
"other": "You clicked {} times!"
|
||||
},
|
||||
"amount": {
|
||||
"zero": "Your amount : {} ",
|
||||
"one": "Your amount : {} ",
|
||||
"two": "Your amount : {} ",
|
||||
"few": "Your amount : {} ",
|
||||
"many": "Your amount : {} ",
|
||||
"other": "Your amount : {} "
|
||||
},
|
||||
"gender": {
|
||||
"male": "Hi man ;) ",
|
||||
"female": "Hello girl :)",
|
||||
"with_arg": {
|
||||
"male": "Hi man ;) {}",
|
||||
"female": "Hello girl :) {}"
|
||||
}
|
||||
},
|
||||
"reset_locale": "Reset Language",
|
||||
"welcomeDes": "You one stop place all your car needs",
|
||||
"log_in": "Log In",
|
||||
"send": "Send",
|
||||
"phoneNumber": "Phone Number",
|
||||
"forgetPasswordQ": "Forget Password?",
|
||||
"recover": "Recover",
|
||||
"retrivePassword": "Retrive password by one of following method",
|
||||
"retriveOnPhone": "We will send the opt to your registered mobile number",
|
||||
"retriveOnEmail": "We will send the opt to your registered email address",
|
||||
"enterPhoneForVerfication": "Please enter your phone number We will send you the verification code",
|
||||
"welcomeBack": "Welcome Back!!!",
|
||||
"selectYourCountry": "Select Your Country",
|
||||
"chooseCountry": "Choose Country",
|
||||
"terms": "Terms of Service and Privacy Policy",
|
||||
"profileMsg": "Enter the details below and complete the profile info",
|
||||
"save": "Save",
|
||||
"insert_otp_code": "Enter the code",
|
||||
"type_code": "Please type the code we sent to",
|
||||
"resend_code": "Resend Code",
|
||||
"check_code": "Check Code",
|
||||
"time_will_expire": "Resend code in",
|
||||
"sec": "sec"
|
||||
};
|
||||
static const Map<String, Map<String,dynamic>> mapLocales = {"ar_SA": ar_SA, "en_US": en_US};
|
||||
}
|
@ -1,33 +0,0 @@
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:mc_common_app/extensions/string_extensions.dart';
|
||||
import 'package:mc_common_app/theme/colors.dart';
|
||||
|
||||
AppBar appBar(
|
||||
BuildContext context, {
|
||||
Color? backgroundColor,
|
||||
double? elevation,
|
||||
String? title,
|
||||
Color? titleColor,
|
||||
bool? isTitleCenter,
|
||||
Color? backIconColor,
|
||||
List<Widget>? actions,
|
||||
bool isRemoveBackButton = false,
|
||||
}) {
|
||||
return AppBar(
|
||||
backgroundColor: backgroundColor ?? appBackgroundColor,
|
||||
elevation: elevation ?? 0,
|
||||
centerTitle: isTitleCenter ?? true,
|
||||
leading: isRemoveBackButton
|
||||
? null
|
||||
: IconButton(
|
||||
icon: Icon(Icons.arrow_back_ios, color: Colors.black),
|
||||
onPressed: () => Navigator.of(context).pop(),
|
||||
),
|
||||
iconTheme: IconThemeData(
|
||||
color: backIconColor ?? Colors.black, //change your color here
|
||||
),
|
||||
actions: actions,
|
||||
title: (title ?? "").toText(fontSize: 20, isBold: true),
|
||||
);
|
||||
}
|
@ -0,0 +1,111 @@
|
||||
|
||||
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/extensions/extensions_widget.dart';
|
||||
|
||||
class AdWidget extends StatelessWidget {
|
||||
final int count;
|
||||
|
||||
const AdWidget({Key? key, required this.count}) : super(key: key);
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return ListView.builder(
|
||||
itemCount: count,
|
||||
shrinkWrap: true,
|
||||
physics: const NeverScrollableScrollPhysics(),
|
||||
itemBuilder: (BuildContext context, int index) {
|
||||
return Padding(
|
||||
padding: const EdgeInsets.only(bottom: 15),
|
||||
child: buildAdContainer(),
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
Widget buildAdContainer() {
|
||||
return Row(
|
||||
children: [
|
||||
Image.asset(
|
||||
"assets/images/bn_car.jpeg",
|
||||
width: 80,
|
||||
height: 80,
|
||||
fit: BoxFit.cover,
|
||||
),
|
||||
12.width,
|
||||
Expanded(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Expanded(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
children: [
|
||||
"Toyota Crolla".toText(fontSize: 16, isBold: true),
|
||||
Row(
|
||||
children: [
|
||||
"Model:".toText(
|
||||
color: MyColors.lightTextColor,
|
||||
),
|
||||
2.width,
|
||||
"2019".toText(),
|
||||
],
|
||||
),
|
||||
Row(
|
||||
children: [
|
||||
"Mileage:".toText(
|
||||
color: MyColors.lightTextColor,
|
||||
),
|
||||
2.width,
|
||||
"73,000 km".toText(),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.end,
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
children: [
|
||||
"Riyadh".toText(
|
||||
color: MyColors.lightTextColor,
|
||||
),
|
||||
"9 Hours Ago".toText(
|
||||
color: MyColors.lightTextColor,
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
8.height,
|
||||
Row(
|
||||
children: [
|
||||
Expanded(
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
crossAxisAlignment: CrossAxisAlignment.end,
|
||||
children: [
|
||||
"30,000".toText(fontSize: 16, isBold: true),
|
||||
2.width,
|
||||
"SAR:".toText(
|
||||
color: MyColors.lightTextColor,
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
const Icon(Icons.arrow_forward)
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
).toWhiteContainer(width: double.infinity, allPading: 12);
|
||||
}
|
||||
}
|
@ -0,0 +1,125 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:mc_common_app/classes/consts.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/extensions/extensions_widget.dart';
|
||||
|
||||
//import 'package:flutter/material.dart';
|
||||
// import 'package:flutter_svg/flutter_svg.dart';
|
||||
// import 'package:mc_common_app/classes/consts.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/extensions/extensions_widget.dart';
|
||||
// import 'package:sizer/sizer.dart';
|
||||
//
|
||||
// class CustomAppBar extends StatelessWidget with PreferredSizeWidget {
|
||||
// final Color? backgroundColor;
|
||||
// final double? elevation;
|
||||
// final String? title;
|
||||
// final Color? titleColor;
|
||||
// final bool? isTitleCenter;
|
||||
// final Color? backIconColor;
|
||||
// final List<Widget>? actions;
|
||||
// final bool isRemoveBackButton;
|
||||
//
|
||||
// const CustomAppBar({
|
||||
// Key? key,
|
||||
// this.title,
|
||||
// required this.isRemoveBackButton,
|
||||
// this.backgroundColor,
|
||||
// this.actions,
|
||||
// this.backIconColor,
|
||||
// this.elevation,
|
||||
// this.isTitleCenter,
|
||||
// this.titleColor,
|
||||
// }) : super(key: key);
|
||||
//
|
||||
// @override
|
||||
// Widget build(BuildContext context) {
|
||||
// return AppBar(
|
||||
// backgroundColor: backgroundColor ?? appBackgroundColor,
|
||||
// elevation: elevation ?? 0,
|
||||
// centerTitle: isTitleCenter ?? true,
|
||||
// leading: isRemoveBackButton
|
||||
// ? null
|
||||
// : IconButton(
|
||||
// icon: const Icon(Icons.arrow_back_ios, color: Colors.black),
|
||||
// onPressed: () => Navigator.of(context).pop(),
|
||||
// ),
|
||||
// iconTheme: IconThemeData(
|
||||
// color: backIconColor ?? Colors.black, //change your color here
|
||||
// ),
|
||||
// actions: actions,
|
||||
// title: (title ?? "").toText(fontSize: 20, isBold: true),
|
||||
// );
|
||||
// }
|
||||
//
|
||||
// @override
|
||||
// Size get preferredSize => const Size.fromHeight(kToolbarHeight);
|
||||
// }
|
||||
class CustomAppBar extends StatelessWidget with PreferredSizeWidget {
|
||||
final Color? backgroundColor;
|
||||
final double? elevation;
|
||||
final String? title;
|
||||
final Color? titleColor;
|
||||
final bool? isTitleCenter;
|
||||
final Color? backIconColor;
|
||||
final List<Widget>? actions;
|
||||
final bool isRemoveBackButton;
|
||||
final String profileImageUrl;
|
||||
final bool isDrawerEnabled;
|
||||
|
||||
const CustomAppBar({
|
||||
Key? key,
|
||||
this.title,
|
||||
this.isDrawerEnabled = false,
|
||||
this.profileImageUrl = "",
|
||||
required this.isRemoveBackButton,
|
||||
this.backgroundColor,
|
||||
this.actions,
|
||||
this.backIconColor,
|
||||
this.elevation,
|
||||
this.isTitleCenter,
|
||||
this.titleColor,
|
||||
}) : super(key: key);
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return AppBar(
|
||||
leadingWidth: 100,
|
||||
backgroundColor: backgroundColor ?? appBackgroundColor,
|
||||
elevation: elevation ?? 0,
|
||||
centerTitle: isTitleCenter ?? true,
|
||||
leading: isDrawerEnabled
|
||||
? Row(
|
||||
children: [
|
||||
Image.asset(
|
||||
profileImageUrl,
|
||||
width: 34,
|
||||
height: 34,
|
||||
fit: BoxFit.fill,
|
||||
).toCircle(borderRadius: 100),
|
||||
10.width,
|
||||
SvgPicture.asset(MyAssets.dashboardDrawerIcon),
|
||||
],
|
||||
).paddingOnly(left: 21)
|
||||
: isRemoveBackButton
|
||||
? null
|
||||
: IconButton(
|
||||
icon: const Icon(Icons.arrow_back_ios, color: Colors.black),
|
||||
onPressed: () => Navigator.of(context).pop(),
|
||||
),
|
||||
iconTheme: IconThemeData(
|
||||
color: backIconColor ?? Colors.black, //change your color here
|
||||
),
|
||||
actions: actions,
|
||||
title: (title ?? "").toText(fontSize: 20, isBold: true),
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
Size get preferredSize => const Size.fromHeight(80);
|
||||
}
|
@ -0,0 +1,168 @@
|
||||
import 'package:carousel_slider/carousel_slider.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:mc_common_app/classes/consts.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/extensions/extensions_widget.dart';
|
||||
|
||||
class AppointmentSliderWidget extends StatelessWidget {
|
||||
const AppointmentSliderWidget({Key? key}) : super(key: key);
|
||||
|
||||
Widget buildAppointmentContainerForProvider() {
|
||||
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(
|
||||
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(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Image.asset(
|
||||
"assets/images/bn_car.jpeg",
|
||||
width: 56,
|
||||
height: 56,
|
||||
fit: BoxFit.fill,
|
||||
).toCircle(borderRadius: 100),
|
||||
8.width,
|
||||
Expanded(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
children: [
|
||||
"Al Aziz Service Station".toText(color: MyColors.black, isBold: true, fontSize: 16),
|
||||
Row(
|
||||
children: [
|
||||
MyAssets.miniClock.buildSvg(height: 12),
|
||||
2.width,
|
||||
"08:00 to 08:30 25 July, 2023".toText(
|
||||
color: MyColors.lightTextColor,
|
||||
fontSize: 12,
|
||||
),
|
||||
],
|
||||
),
|
||||
9.height,
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
crossAxisAlignment: CrossAxisAlignment.end,
|
||||
children: [
|
||||
"Appointment Details".toText(
|
||||
color: MyColors.primaryColor,
|
||||
isUnderLine: true,
|
||||
isBold: true,
|
||||
fontSize: 14,
|
||||
),
|
||||
const Icon(Icons.arrow_forward),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
).toWhiteContainer(width: double.infinity, allPading: 12),
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return CarouselSlider.builder(
|
||||
options: CarouselOptions(
|
||||
height: 140,
|
||||
viewportFraction: 1.0,
|
||||
enlargeCenterPage: false,
|
||||
enableInfiniteScroll: false,
|
||||
//
|
||||
// onPageChanged: (index) {
|
||||
// setState(() {
|
||||
// _current = index;
|
||||
// });
|
||||
// },
|
||||
),
|
||||
itemCount: 10,
|
||||
itemBuilder: (BuildContext context, int itemIndex, int pageViewIndex) => buildAppointmentSliderForConsumer(),
|
||||
);
|
||||
}
|
||||
|
||||
Widget showServices(String title) {
|
||||
return Row(
|
||||
children: [
|
||||
const Icon(
|
||||
Icons.ac_unit,
|
||||
color: MyColors.primaryColor,
|
||||
size: 18,
|
||||
),
|
||||
8.width,
|
||||
title.toText(
|
||||
fontSize: 14,
|
||||
isBold: true,
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
||||
}
|
@ -0,0 +1,61 @@
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:mc_common_app/extensions/widget_extensions.dart';
|
||||
import 'package:mc_common_app/generated/locale_keys.g.dart';
|
||||
import 'package:mc_common_app/theme/colors.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:mc_common_app/classes/consts.dart';
|
||||
|
||||
class CustomBottomNavbar extends StatelessWidget {
|
||||
final int selectedNavbarBarIndex;
|
||||
final Function(int) onSelected;
|
||||
|
||||
const CustomBottomNavbar({Key? key, required this.onSelected, required this.selectedNavbarBarIndex}) : super(key: key);
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return BottomNavigationBar(
|
||||
items: <BottomNavigationBarItem>[
|
||||
BottomNavigationBarItem(
|
||||
icon: SvgPicture.asset(MyAssets.providersIcon).paddingAll(5),
|
||||
activeIcon: SvgPicture.asset(MyAssets.providersIcon, color: MyColors.darkIconColor).paddingAll(5),
|
||||
label: LocaleKeys.providers.tr(),
|
||||
),
|
||||
BottomNavigationBarItem(
|
||||
icon: SvgPicture.asset(MyAssets.appointmentsIcon).paddingAll(5),
|
||||
activeIcon: SvgPicture.asset(MyAssets.appointmentsIcon, color: MyColors.darkIconColor).paddingAll(5),
|
||||
label: LocaleKeys.appointments.tr(),
|
||||
),
|
||||
BottomNavigationBarItem(
|
||||
icon: SvgPicture.asset(
|
||||
MyAssets.homeIcon,
|
||||
color: MyColors.lightIconColor,
|
||||
).paddingAll(5),
|
||||
activeIcon: SvgPicture.asset(MyAssets.homeIcon, color: MyColors.darkIconColor).paddingAll(5),
|
||||
label: LocaleKeys.home.tr(),
|
||||
),
|
||||
BottomNavigationBarItem(
|
||||
icon: SvgPicture.asset(MyAssets.announcementIcon).paddingAll(5),
|
||||
activeIcon: SvgPicture.asset(MyAssets.announcementIcon, color: MyColors.darkIconColor).paddingAll(5),
|
||||
label: LocaleKeys.ads.tr(),
|
||||
),
|
||||
BottomNavigationBarItem(
|
||||
icon: SvgPicture.asset(MyAssets.settingsIcon).paddingAll(5),
|
||||
activeIcon: SvgPicture.asset(MyAssets.settingsIcon, color: MyColors.darkIconColor).paddingAll(5),
|
||||
label: LocaleKeys.settings.tr(),
|
||||
),
|
||||
],
|
||||
currentIndex: selectedNavbarBarIndex,
|
||||
type: BottomNavigationBarType.fixed,
|
||||
selectedItemColor: MyColors.darkIconColor,
|
||||
showSelectedLabels: true,
|
||||
showUnselectedLabels: true,
|
||||
unselectedItemColor: MyColors.lightTextColor,
|
||||
unselectedFontSize: 11,
|
||||
selectedFontSize: 11,
|
||||
selectedLabelStyle: const TextStyle(fontFamily: "Poppins"),
|
||||
unselectedLabelStyle: const TextStyle(fontFamily: "Poppins"),
|
||||
onTap: (index) => onSelected(index),
|
||||
);
|
||||
}
|
||||
}
|
@ -0,0 +1,39 @@
|
||||
|
||||
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/widgets/extensions/extensions_widget.dart';
|
||||
|
||||
class ServiceProviderWidget extends StatelessWidget {
|
||||
const ServiceProviderWidget({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return SizedBox(
|
||||
width: double.infinity,
|
||||
height: 140,
|
||||
child: ListView.builder(
|
||||
itemCount: 9,
|
||||
scrollDirection: Axis.horizontal,
|
||||
shrinkWrap: true,
|
||||
itemBuilder: (BuildContext context, int index) {
|
||||
return SizedBox(
|
||||
width: 90,
|
||||
child: Column(
|
||||
children: [
|
||||
Image.asset(
|
||||
"assets/images/bn_car.jpeg",
|
||||
width: 80,
|
||||
height: 80,
|
||||
fit: BoxFit.cover,
|
||||
).toCircle(borderRadius: 100),
|
||||
8.height,
|
||||
"Olaya Branch".toText(fontSize: 14, isBold: true, textAlign: TextAlign.center),
|
||||
],
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
@ -0,0 +1,30 @@
|
||||
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:mc_common_app/extensions/string_extensions.dart';
|
||||
import 'package:mc_common_app/theme/colors.dart';
|
||||
|
||||
class ViewAllWidget extends StatelessWidget {
|
||||
final String title;
|
||||
final String subTitle;
|
||||
|
||||
const ViewAllWidget({Key? key, required this.title, required this.subTitle}) : super(key: key);
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Container(
|
||||
width: double.infinity,
|
||||
padding: const EdgeInsets.only(bottom: 7),
|
||||
child: Row(
|
||||
children: [
|
||||
Expanded(child: title.toText(isBold: true, fontSize: 18)),
|
||||
subTitle.toText(
|
||||
fontSize: 11,
|
||||
isBold: true,
|
||||
color: MyColors.primaryColor,
|
||||
textDecoration: TextDecoration.underline,
|
||||
)
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue