diff --git a/assets/icons/Group 17.png b/assets/icons/Group 17.png deleted file mode 100644 index 7bb404a..0000000 Binary files a/assets/icons/Group 17.png and /dev/null differ diff --git a/assets/icons/anouncement_icon.svg b/assets/icons/anouncement_icon.svg deleted file mode 100644 index dad55fd..0000000 --- a/assets/icons/anouncement_icon.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/assets/icons/appointments_icon.svg b/assets/icons/appointments_icon.svg deleted file mode 100644 index ebf91e9..0000000 --- a/assets/icons/appointments_icon.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/assets/icons/close_icon.svg b/assets/icons/close_icon.svg deleted file mode 100644 index 0230942..0000000 --- a/assets/icons/close_icon.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/icons/drawer_icon.svg b/assets/icons/drawer_icon.svg deleted file mode 100644 index 363d413..0000000 --- a/assets/icons/drawer_icon.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/assets/icons/home_icon.svg b/assets/icons/home_icon.svg deleted file mode 100644 index 758dd1b..0000000 --- a/assets/icons/home_icon.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/icons/ic_branchs.svg b/assets/icons/ic_branchs.svg deleted file mode 100644 index d074656..0000000 --- a/assets/icons/ic_branchs.svg +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/assets/icons/ic_close_account.svg b/assets/icons/ic_close_account.svg deleted file mode 100644 index 93adb61..0000000 --- a/assets/icons/ic_close_account.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/assets/icons/ic_face.svg b/assets/icons/ic_face.svg deleted file mode 100644 index 5fa9a9c..0000000 --- a/assets/icons/ic_face.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/assets/icons/ic_face_id.png b/assets/icons/ic_face_id.png deleted file mode 100644 index 913e850..0000000 Binary files a/assets/icons/ic_face_id.png and /dev/null differ diff --git a/assets/icons/ic_fingerprint.png b/assets/icons/ic_fingerprint.png deleted file mode 100644 index bf73197..0000000 Binary files a/assets/icons/ic_fingerprint.png and /dev/null differ diff --git a/assets/icons/ic_fingerprint.svg b/assets/icons/ic_fingerprint.svg deleted file mode 100644 index ba45417..0000000 --- a/assets/icons/ic_fingerprint.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/assets/icons/ic_provider.svg b/assets/icons/ic_provider.svg deleted file mode 100644 index e22c356..0000000 --- a/assets/icons/ic_provider.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/icons/ic_services.svg b/assets/icons/ic_services.svg deleted file mode 100644 index b0d0606..0000000 --- a/assets/icons/ic_services.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/assets/icons/ic_settings.svg b/assets/icons/ic_settings.svg deleted file mode 100644 index 6435135..0000000 --- a/assets/icons/ic_settings.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/assets/icons/ic_sms.png b/assets/icons/ic_sms.png deleted file mode 100644 index aa72e0e..0000000 Binary files a/assets/icons/ic_sms.png and /dev/null differ diff --git a/assets/icons/ic_sms.svg b/assets/icons/ic_sms.svg deleted file mode 100644 index 132ab7f..0000000 --- a/assets/icons/ic_sms.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/assets/icons/ic_whatsapp.png b/assets/icons/ic_whatsapp.png deleted file mode 100644 index 3f36403..0000000 Binary files a/assets/icons/ic_whatsapp.png and /dev/null differ diff --git a/assets/icons/ic_whatsapp.svg b/assets/icons/ic_whatsapp.svg deleted file mode 100644 index 073e581..0000000 --- a/assets/icons/ic_whatsapp.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/assets/icons/mini_clock.svg b/assets/icons/mini_clock.svg deleted file mode 100644 index d59971c..0000000 --- a/assets/icons/mini_clock.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/icons/next_icon.svg b/assets/icons/next_icon.svg deleted file mode 100644 index 0a3dc04..0000000 --- a/assets/icons/next_icon.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/icons/notification_bell.svg b/assets/icons/notification_bell.svg deleted file mode 100644 index dd32254..0000000 --- a/assets/icons/notification_bell.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/assets/icons/providers_icon.svg b/assets/icons/providers_icon.svg deleted file mode 100644 index f4cc334..0000000 --- a/assets/icons/providers_icon.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/assets/icons/settings_icon.svg b/assets/icons/settings_icon.svg deleted file mode 100644 index 6fe8da9..0000000 --- a/assets/icons/settings_icon.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/images/bc_Intro.svg b/assets/images/bc_Intro.svg deleted file mode 100644 index deb4ffa..0000000 --- a/assets/images/bc_Intro.svg +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/assets/images/bn_Intro.png b/assets/images/bn_Intro.png deleted file mode 100644 index 8c342d2..0000000 Binary files a/assets/images/bn_Intro.png and /dev/null differ diff --git a/assets/images/bn_car.jpeg b/assets/images/bn_car.jpeg deleted file mode 100644 index 5a6bd85..0000000 Binary files a/assets/images/bn_car.jpeg and /dev/null differ diff --git a/assets/images/bn_logo.svg b/assets/images/bn_logo.svg deleted file mode 100644 index b0c971d..0000000 --- a/assets/images/bn_logo.svg +++ /dev/null @@ -1,560 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/assets/images/bn_map.png b/assets/images/bn_map.png deleted file mode 100644 index b04b5aa..0000000 Binary files a/assets/images/bn_map.png and /dev/null differ diff --git a/assets/images/ic_car.svg b/assets/images/ic_car.svg deleted file mode 100644 index 804f607..0000000 --- a/assets/images/ic_car.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/assets/images/ic_edit.svg b/assets/images/ic_edit.svg deleted file mode 100644 index c14165f..0000000 --- a/assets/images/ic_edit.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/assets/images/ic_email.svg b/assets/images/ic_email.svg deleted file mode 100644 index 81c4573..0000000 --- a/assets/images/ic_email.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/assets/images/ic_engine.png b/assets/images/ic_engine.png deleted file mode 100644 index 0256ff0..0000000 Binary files a/assets/images/ic_engine.png and /dev/null differ diff --git a/assets/images/ic_lock.svg b/assets/images/ic_lock.svg deleted file mode 100644 index 1273157..0000000 --- a/assets/images/ic_lock.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/assets/images/ic_logo_white.png b/assets/images/ic_logo_white.png deleted file mode 100644 index 779fda4..0000000 Binary files a/assets/images/ic_logo_white.png and /dev/null differ diff --git a/assets/images/ic_logout.svg b/assets/images/ic_logout.svg deleted file mode 100644 index 2be107f..0000000 --- a/assets/images/ic_logout.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/assets/images/ic_mobile.svg b/assets/images/ic_mobile.svg deleted file mode 100644 index 068cf7a..0000000 --- a/assets/images/ic_mobile.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/assets/images/ic_notes.svg b/assets/images/ic_notes.svg deleted file mode 100644 index 009cf17..0000000 --- a/assets/images/ic_notes.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/assets/images/ic_notification.svg b/assets/images/ic_notification.svg deleted file mode 100644 index e45bab2..0000000 --- a/assets/images/ic_notification.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/assets/images/ic_settings.svg b/assets/images/ic_settings.svg deleted file mode 100644 index 83b64c9..0000000 --- a/assets/images/ic_settings.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/assets/images/ic_world.png b/assets/images/ic_world.png deleted file mode 100644 index 01ea634..0000000 Binary files a/assets/images/ic_world.png and /dev/null differ diff --git a/assets/images/logo.svg b/assets/images/logo.svg deleted file mode 100644 index 8552147..0000000 --- a/assets/images/logo.svg +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/assets/images/splash_logo.svg b/assets/images/splash_logo.svg deleted file mode 100644 index 481226e..0000000 --- a/assets/images/splash_logo.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/assets/langs/ar-SA.json b/assets/langs/ar-SA.json deleted file mode 100644 index 4d542b6..0000000 --- a/assets/langs/ar-SA.json +++ /dev/null @@ -1,138 +0,0 @@ -{ - "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" : "ثانية" -} \ No newline at end of file diff --git a/assets/langs/en-US.json b/assets/langs/en-US.json deleted file mode 100644 index ae3143e..0000000 --- a/assets/langs/en-US.json +++ /dev/null @@ -1,138 +0,0 @@ -{ - "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" -} \ No newline at end of file diff --git a/lib/config/customer_routes.dart b/lib/config/customer_routes.dart index d6763e9..ed47589 100644 --- a/lib/config/customer_routes.dart +++ b/lib/config/customer_routes.dart @@ -1,3 +1,4 @@ +import 'package:car_customer_app/views/book_provider_app_view.dart'; import 'package:car_customer_app/views/dashboard/dashboard_page.dart'; import 'package:flutter/cupertino.dart'; import 'package:mc_common_app/config/routes.dart'; @@ -5,5 +6,7 @@ import 'package:mc_common_app/config/routes.dart'; class CustomerAppRoutes { static final Map routes = { AppRoutes.dashboard: (context) => DashboardPage(), + AppRoutes.bookProviderAppView: (context) => BookProviderAppView(), + }; } diff --git a/lib/generated/codegen_loader.g.dart b/lib/generated/codegen_loader.g.dart deleted file mode 100644 index 85fd4ca..0000000 --- a/lib/generated/codegen_loader.g.dart +++ /dev/null @@ -1,294 +0,0 @@ -// 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> load(String fullPath, Locale locale ) { - return Future.value(mapLocales[locale.toString()]); - } - - static const Map 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 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> mapLocales = {"ar_SA": ar_SA, "en_US": en_US}; -} diff --git a/lib/generated/locale_keys.g.dart b/lib/generated/locale_keys.g.dart deleted file mode 100644 index fbbf4a1..0000000 --- a/lib/generated/locale_keys.g.dart +++ /dev/null @@ -1,124 +0,0 @@ -// DO NOT EDIT. This is code generated via package:easy_localization/generate.dart - -abstract class LocaleKeys { - static const firstTimeLogIn = 'firstTimeLogIn'; - static const signUp = 'signUp'; - static const changeMobile = 'changeMobile'; - static const notifications = 'notifications'; - static const general = 'general'; - static const defineLicences = 'defineLicences'; - static const dealershipSettings = 'dealershipSettings'; - static const changePassword = 'changePassword'; - static const retrievePassword = 'retrievePassword'; - static const changeEmail = 'changeEmail'; - static const verify = 'verify'; - static const verified = 'verified'; - static const signOut = 'signOut'; - static const enterEmail = 'enterEmail'; - static const enterNewEmail = 'enterNewEmail'; - static const enterCurrentPassword = 'enterCurrentPassword'; - static const enterNewPassword = 'enterNewPassword'; - static const enterOldPassword = 'enterOldPassword'; - static const confirm = 'confirm'; - static const enterNewPhoneNumber = 'enterNewPhoneNumber'; - static const completeProfile = 'completeProfile'; - static const continu = 'continu'; - static const confirmPassword = 'confirmPassword'; - static const createPassword = 'createPassword'; - static const email = 'email'; - static const firstName = 'firstName'; - static const surname = 'surname'; - static const confirmPass = 'confirmPass'; - static const createPass = 'createPass'; - static const newPassword = 'newPassword'; - static const forgetPassword = 'forgetPassword'; - static const forgetPasswordRecover = 'forgetPasswordRecover'; - static const editAccount = 'editAccount'; - static const change = 'change'; - static const verifyAccount = 'verifyAccount'; - static const login = 'login'; - static const welcomeMessage = 'welcomeMessage'; - static const forgetPass = 'forgetPass'; - static const enterPhoneNumber = 'enterPhoneNumber'; - static const phoneNumberVerified = 'phoneNumberVerified'; - static const verifyNewPassword = 'verifyNewPassword'; - static const EnterPass = 'EnterPass'; - static const alreadySigned = 'alreadySigned'; - static const emailChangedSuccessfully = 'emailChangedSuccessfully'; - static const passwordIsUpdated = 'passwordIsUpdated'; - static const passwordShouldContains = 'passwordShouldContains'; - static const successfullyRegistered = ' successfullyRegistered'; - static const pleaseEnterSamePassword = 'pleaseEnterSamePassword'; - static const firstNameMandatory = 'firstNameMandatory'; - static const surnameNameMandatory = 'surnameNameMandatory'; - static const passwordNameMandatory = 'passwordNameMandatory'; - static const enterValidEmail = 'enterValidEmail'; - static const pleaseAcceptTerms = 'pleaseAcceptTerms'; - static const emailVerified = 'emailVerified'; - static const selectMethod = 'selectMethod'; - static const emailAddress = 'emailAddress'; - static const loginSelection = 'loginSelection'; - static const selectCountryCode = 'selectCountryCode'; - static const selectProviderRole = 'selectProviderRole'; - static const addPhoneNo = 'addPhoneNo'; - static const onlyCustomerApp = 'onlyCustomerApp'; - static const imageUploaded = 'imageUploaded'; - static const fileLarger = 'fileLarger'; - static const account = 'account'; - static const edit = 'edit'; - static const imageDeleted = 'imageDeleted'; - static const dashboard = 'dashboard'; - static const termsOfService = 'termsOfService'; - static const userInformation = 'userInformation'; - static const faceRecognition = 'faceRecognition'; - static const fingerPrint = 'fingerPrint'; - static const whatsapp = 'whatsapp'; - static const SMS = 'SMS'; - static const selectRole = 'selectRole'; - static const userRoleOrTitle = 'userRoleOrTitle'; - static const codeSentToEmail = 'codeSentToEmail'; - static const number = 'number'; - static const english = 'english'; - static const title = 'title'; - static const msg = 'msg'; - static const msg_named = 'msg_named'; - static const clickMe = 'clickMe'; - static const profile_reset_password_label = 'profile.reset_password.label'; - static const profile_reset_password_username = 'profile.reset_password.username'; - static const profile_reset_password_password = 'profile.reset_password.password'; - static const profile_reset_password = 'profile.reset_password'; - static const profile = 'profile'; - static const clicked = 'clicked'; - static const amount = 'amount'; - static const gender_with_arg = 'gender.with_arg'; - static const gender = 'gender'; - static const reset_locale = 'reset_locale'; - static const welcomeDes = 'welcomeDes'; - static const log_in = 'log_in'; - static const send = 'send'; - static const phoneNumber = 'phoneNumber'; - static const forgetPasswordQ = 'forgetPasswordQ'; - static const recover = 'recover'; - static const retrivePassword = 'retrivePassword'; - static const retriveOnPhone = 'retriveOnPhone'; - static const retriveOnEmail = 'retriveOnEmail'; - static const enterPhoneForVerfication = 'enterPhoneForVerfication'; - static const welcomeBack = 'welcomeBack'; - static const selectYourCountry = 'selectYourCountry'; - static const chooseCountry = 'chooseCountry'; - static const terms = 'terms'; - static const profileMsg = 'profileMsg'; - static const save = 'save'; - static const insert_otp_code = 'insert_otp_code'; - static const type_code = 'type_code'; - static const resend_code = 'resend_code'; - static const check_code = 'check_code'; - static const time_will_expire = 'time_will_expire'; - static const sec = 'sec'; - static const home = 'home'; - static const providers = 'providers'; - static const appointments = 'appointments'; - static const ads = 'ads'; - static const settings = 'settings'; - -} diff --git a/lib/main.dart b/lib/main.dart index aa4a166..cd4c65d 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -3,14 +3,15 @@ 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:flutter/material.dart'; -import 'package:mc_common_app/classes/app_state_cm.dart'; -import 'package:mc_common_app/classes/consts.dart'; +import 'package:mc_common_app/classes/app_state.dart'; + import 'package:mc_common_app/services/services.dart'; import 'package:mc_common_app/theme/app_theme.dart'; import 'package:mc_common_app/config/dependencies.dart'; import 'package:mc_common_app/config/routes.dart'; import 'package:mc_common_app/models/post_params_model.dart'; import 'package:mc_common_app/repositories/user_repo.dart'; +import 'package:mc_common_app/utils/enums.dart'; import 'package:mc_common_app/view_models/base_view_model.dart'; import 'package:mc_common_app/view_models/user_view_model.dart'; import 'package:mc_common_app/widgets/extensions/extensions_widget.dart'; @@ -18,8 +19,6 @@ import 'package:sizer/sizer.dart'; import 'package:provider/provider.dart'; import 'package:provider/single_child_widget.dart'; -import 'generated/codegen_loader.g.dart'; - Future main() async { WidgetsFlutterBinding.ensureInitialized(); CustomerDependencies.addDependencies(); @@ -60,13 +59,16 @@ class MyApp extends StatelessWidget { Widget build(BuildContext context) { return Sizer( builder: (context, orientation, deviceType) { - AppStateCm().setPostParamsModel( + injector.get().setAppType(AppType.customer); + AppState().setPostParamsModel( PostParamsModel( languageID: EasyLocalization.of(context)?.locale.languageCode == "ar" ? 1 : 2, ), ); return MaterialApp( - theme: AppTheme.getTheme(EasyLocalization.of(context)?.locale.languageCode == "ar"), + theme: AppTheme.getTheme( + isArabic: EasyLocalization.of(context)?.locale.languageCode == "ar", + ), debugShowCheckedModeBanner: false, localizationsDelegates: context.localizationDelegates, supportedLocales: context.supportedLocales, diff --git a/lib/view_models/dashboard_view_model.dart b/lib/view_models/dashboard_view_model.dart index 2a45951..a411976 100644 --- a/lib/view_models/dashboard_view_model.dart +++ b/lib/view_models/dashboard_view_model.dart @@ -1,13 +1,13 @@ import 'dart:io'; -import 'package:car_customer_app/generated/locale_keys.g.dart'; -import 'package:mc_common_app/classes/app_state_cm.dart'; +import 'package:mc_common_app/classes/app_state.dart'; +import 'package:mc_common_app/generated/locale_keys.g.dart'; import 'package:mc_common_app/models/user/image_response.dart'; import 'package:mc_common_app/repositories/user_repo.dart'; import 'package:mc_common_app/services/services.dart'; import 'package:mc_common_app/utils/utils.dart'; import 'package:mc_common_app/view_models/base_view_model.dart'; -import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/cupertino.dart'; +import 'package:easy_localization/easy_localization.dart'; class DashboardVM extends BaseVM { final CommonServices commonServices; @@ -42,7 +42,7 @@ class DashboardVM extends BaseVM { Navigator.pop(context); if (response.messageStatus == 1) { Utils.showToast(LocaleKeys.imageUploaded.tr()); - AppStateCm().getUser.data!.userInfo!.userImageUrl = response.data; + AppState().getUser.data!.userInfo!.userImageUrl = response.data; } else { Utils.showToast(response.message ?? ""); } diff --git a/lib/views/book_provider_app_view.dart b/lib/views/book_provider_app_view.dart new file mode 100644 index 0000000..7877bdf --- /dev/null +++ b/lib/views/book_provider_app_view.dart @@ -0,0 +1,120 @@ +import 'package:car_customer_app/views/dashboard/fragments/providers_fragment.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/extensions/extensions_widget.dart'; + +class BookProviderAppView extends StatelessWidget { + const BookProviderAppView({Key? key}) : super(key: key); + + @override + Widget build(BuildContext context) { + return Material( + child: Container( + color: MyColors.backgroundColor, + width: double.infinity, + height: double.infinity, + child: SingleChildScrollView( + child: Column( + children: [ + 80.height, + ProviderDetailsCard(), + 12.height, + ServicesSelectionSection(), + ], + ), + ), + ), + ); + } +} + +class ServicesSelectionSection extends StatelessWidget { + const ServicesSelectionSection({Key? key}) : super(key: key); + + Widget buildDropDownContainer({required Widget child}) { + return Container( + height: 48, + decoration: BoxDecoration( + border: Border.all( + width: 3, + color: MyColors.primaryColor, + ), + ), + ); + } + + + @override + Widget build(BuildContext context) { + return Container( + padding: const EdgeInsets.only( + bottom: 10, + left: 21, + right: 21, + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + "Select services you want".toText(fontSize: 18, isBold: true), + 8.height, + buildDropDownContainer(child: SizedBox()), + 8.height, + buildDropDownContainer(child: SizedBox()), + + 8.height, + buildDropDownContainer(child: SizedBox()), + + 22.height, + "Select Date and Time".toText(fontSize: 18, isBold: true), + 8.height, + buildDropDownContainer(child: SizedBox()), + + 22.height, + "Available slots".toText(fontSize: 15, isBold: true), + 8.height, + BuildTimeSlots() + + ], + ).toWhiteContainer(width: double.infinity, allPading: 12), + ); + } +} + +class BuildTimeSlots extends StatelessWidget { + const BuildTimeSlots({Key? key}) : super(key: key); + + @override + Widget build(BuildContext context) { + return SizedBox( + height: 37, + width: double.infinity, + child: ListView.builder( + itemCount: 20, + scrollDirection: Axis.horizontal, + itemBuilder: (BuildContext context, int index) { + return InkWell( + onTap: () {}, + child: Container( + alignment: Alignment.center, + margin: EdgeInsets.only(right: 8), + width: 50, + decoration: BoxDecoration( + color: index < 1 ? MyColors.darkIconColor : null, + border: Border.all( + color: index < 1 ? MyColors.darkIconColor : MyColors.primaryColor, + width: 2, + ), + ), + child: "09:00".toText( + fontSize: 12, + color: index < 1 ? MyColors.white : null, + ), + ), + ); + }), + ); + } +} + diff --git a/lib/views/dashboard/dashboard_page.dart b/lib/views/dashboard/dashboard_page.dart index e9a5664..a362c0f 100644 --- a/lib/views/dashboard/dashboard_page.dart +++ b/lib/views/dashboard/dashboard_page.dart @@ -1,12 +1,16 @@ import 'package:car_customer_app/view_models/dashboard_view_model.dart'; +import 'package:car_customer_app/views/dashboard/fragments/ads_fragment.dart'; +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/fragments/providers_fragment.dart'; +import 'package:car_customer_app/views/dashboard/fragments/settings_fragment.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:flutter/material.dart'; import 'package:mc_common_app/classes/consts.dart'; import 'package:mc_common_app/widgets/common_widgets/app_bar.dart'; import 'package:mc_common_app/widgets/extensions/extensions_widget.dart'; import 'package:provider/provider.dart'; -import 'package:mc_common_app/widgets/common_widgets/bottom_nav_bar.dart'; class DashboardPage extends StatefulWidget { const DashboardPage({Key? key}) : super(key: key); @@ -16,41 +20,37 @@ class DashboardPage extends StatefulWidget { } class _DashboardPageState extends State { - late DashboardVM dashboardVM; + // late DashboardVM dashboardVM; @override void initState() { super.initState(); - dashboardVM = Provider.of(context, listen: false); + // dashboardVM = Provider.of(context, listen: false); fetchUsername(); } fetchUsername() async {} List fragments = [ + const ProvidersFragment(), + const AppointmentsFragment(), const HomeFragment(), - const HomeFragment(), - const HomeFragment(), - const HomeFragment(), + const AdsFragment(), + const SettingsFragment(), ]; @override Widget build(BuildContext context) { return Scaffold( - - appBar: CustomAppBar( - profileImageUrl: "assets/images/bn_car.jpeg", + appBar: context.watch().selectedNavbarBarIndex != 2 ? null : CustomAppBar( + profileImageUrl: MyAssets.bnCar, isRemoveBackButton: false, isDrawerEnabled: true, - actions: [MyAssets.notificationsIcon.buildSvg().paddingOnly(right: 21)], + actions: [MyAssets.notificationsBellIcon.buildSvg().paddingOnly(right: 21)], ), - drawer: CustomDrawer(dashboardVM: dashboardVM), - bottomNavigationBar: CustomBottomNavbar( - selectedNavbarBarIndex: dashboardVM.selectedNavbarBarIndex, - onSelected: (int index) { - dashboardVM.onNavbarTapped(index); - }), - body: fragments[dashboardVM.selectedNavbarBarIndex], + drawer: CustomDrawer(dashboardVM: context.watch()), + bottomNavigationBar: CustomBottomNavbar(), + body: fragments[context.watch().selectedNavbarBarIndex], ); } } diff --git a/lib/views/dashboard/fragments/ads_fragment.dart b/lib/views/dashboard/fragments/ads_fragment.dart new file mode 100644 index 0000000..f437c22 --- /dev/null +++ b/lib/views/dashboard/fragments/ads_fragment.dart @@ -0,0 +1,11 @@ +import 'package:flutter/material.dart'; + + +class AdsFragment extends StatelessWidget { + const AdsFragment({Key? key}) : super(key: key); + + @override + Widget build(BuildContext context) { + return Container(); + } +} diff --git a/lib/views/dashboard/fragments/appointments_fragment.dart b/lib/views/dashboard/fragments/appointments_fragment.dart new file mode 100644 index 0000000..277ed11 --- /dev/null +++ b/lib/views/dashboard/fragments/appointments_fragment.dart @@ -0,0 +1,10 @@ +import 'package:flutter/material.dart'; + +class AppointmentsFragment extends StatelessWidget { + const AppointmentsFragment({Key? key}) : super(key: key); + + @override + Widget build(BuildContext context) { + return Container(); + } +} diff --git a/lib/views/dashboard/fragments/home_fragment.dart b/lib/views/dashboard/fragments/home_fragment.dart index 71d7289..1014d99 100644 --- a/lib/views/dashboard/fragments/home_fragment.dart +++ b/lib/views/dashboard/fragments/home_fragment.dart @@ -2,9 +2,9 @@ import 'package:flutter/material.dart'; import 'package:mc_common_app/extensions/int_extensions.dart'; import 'package:mc_common_app/widgets/extensions/extensions_widget.dart'; import 'package:mc_common_app/widgets/common_widgets/ad_widget.dart'; -import 'package:mc_common_app/widgets/common_widgets/appointment_slider_widget.dart'; import 'package:mc_common_app/widgets/common_widgets/view_all_widget.dart'; import 'package:mc_common_app/widgets/common_widgets/my_service_provider.dart'; +import 'package:mc_common_app/widgets/common_widgets/customer_appointment_slider_widget.dart'; class HomeFragment extends StatelessWidget { const HomeFragment({Key? key}) : super(key: key); @@ -20,9 +20,8 @@ class HomeFragment extends StatelessWidget { child: Column( mainAxisSize: MainAxisSize.max, children: [ - ViewAllWidget(title: "Upcoming Appointment".toUpperCase(), subTitle: "View All").horPaddingMain(), - const AppointmentSliderWidget(), + const CustomerAppointmentSliderWidget(), 7.height, ViewAllWidget(title: "My Recent Service Providers".toUpperCase(), subTitle: "View All").horPaddingMain(), const ServiceProviderWidget().horPaddingMain(), diff --git a/lib/views/dashboard/fragments/providers_fragment.dart b/lib/views/dashboard/fragments/providers_fragment.dart new file mode 100644 index 0000000..8c90cb9 --- /dev/null +++ b/lib/views/dashboard/fragments/providers_fragment.dart @@ -0,0 +1,176 @@ +import 'package:flutter/material.dart'; +import 'package:mc_common_app/classes/consts.dart'; +import 'package:mc_common_app/config/routes.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/utils/navigator.dart'; +import 'package:mc_common_app/widgets/extensions/extensions_widget.dart'; + +class ProvidersFragment extends StatelessWidget { + const ProvidersFragment({Key? key}) : super(key: key); + + @override + Widget build(BuildContext context) { + return Container( + color: MyColors.backgroundColor, + width: double.infinity, + height: double.infinity, + child: Column( + children: [ + 80.height, + BuildServices(), + 5.height, + Expanded( + child: Container( + child: ListView.builder( + shrinkWrap: true, + itemCount: 30, + itemBuilder: (BuildContext context, int index) { + return InkWell( + onTap: () { + navigateWithName(context, AppRoutes.bookProviderAppView); + }, + child: ProviderDetailsCard(), + ); + }), + ), + ), + ], + ), + ); + } +} + +class BuildServices extends StatelessWidget { + const BuildServices({Key? key}) : super(key: key); + + @override + Widget build(BuildContext context) { + return SizedBox( + height: 37, + width: double.infinity, + child: ListView.builder( + itemCount: 20, + scrollDirection: Axis.horizontal, + itemBuilder: (BuildContext context, int index) { + return InkWell( + onTap: () {}, + child: Container( + alignment: Alignment.center, + margin: EdgeInsets.symmetric(horizontal: 8), + width: 85, + decoration: BoxDecoration( + color: index < 2 ? MyColors.darkIconColor : null, + border: Border.all( + color: index < 2 ? MyColors.darkIconColor : MyColors.primaryColor, + width: 2, + ), + ), + child: "Oil Services".toText( + fontSize: 12, + color: index < 2 ? MyColors.white : null, + ), + ), + ); + }), + ); + } +} + +class ProviderDetailsCard extends StatelessWidget { + const ProviderDetailsCard({Key? key}) : super(key: key); + + @override + Widget build(BuildContext context) { + return Padding( + padding: const EdgeInsets.only( + bottom: 10, + left: 21, + right: 21, + ), + child: Row( + children: [ + Image.asset( + MyAssets.bnCar, + width: 80, + height: 85, + 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: [ + "Al Ahmed Maintenance".toText(fontSize: 16, isBold: true), + Row( + children: [ + "Location:".toText(color: MyColors.lightTextColor, fontSize: 12), + 2.width, + "9.5km".toText(fontSize: 12), + ], + ), + ], + ), + ), + Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + "4.9".toText( + isUnderLine: true, + isBold: true, + fontSize: 12, + ), + 2.width, + MyAssets.starIcon.buildSvg(width: 12), + ], + ), + ], + ), + 8.height, + Row( + children: [ + Expanded( + child: Column( + children: [ + Row( + children: [ + MyAssets.maintenanceIcon.buildSvg(), + 8.width, + "Maintenance".toText( + fontSize: 14, + isBold: true, + ), + ], + ), + Row( + children: [ + MyAssets.modificationsIcon.buildSvg(), + 8.width, + "Accessories and Modification".toText( + fontSize: 14, + isBold: true, + ), + ], + ) + ], + ), + ), + ], + ), + ], + ), + ), + ], + ).toWhiteContainer(width: double.infinity, allPading: 12)); + } +} diff --git a/lib/views/dashboard/fragments/settings_fragment.dart b/lib/views/dashboard/fragments/settings_fragment.dart new file mode 100644 index 0000000..b5a47cf --- /dev/null +++ b/lib/views/dashboard/fragments/settings_fragment.dart @@ -0,0 +1,10 @@ +import 'package:flutter/material.dart'; + +class SettingsFragment extends StatelessWidget { + const SettingsFragment({Key? key}) : super(key: key); + + @override + Widget build(BuildContext context) { + return Container(); + } +} diff --git a/lib/views/dashboard/widgets/bottom_nav_bar.dart b/lib/views/dashboard/widgets/bottom_nav_bar.dart new file mode 100644 index 0000000..420903d --- /dev/null +++ b/lib/views/dashboard/widgets/bottom_nav_bar.dart @@ -0,0 +1,62 @@ +import 'package:car_customer_app/view_models/dashboard_view_model.dart'; +import 'package:easy_localization/easy_localization.dart'; +import 'package:flutter/material.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'; +import 'package:mc_common_app/widgets/extensions/extensions_widget.dart'; +import 'package:provider/provider.dart'; + + +class CustomBottomNavbar extends StatelessWidget { + const CustomBottomNavbar({Key? key}) : super(key: key); + + @override + Widget build(BuildContext context) { + DashboardVM dashboardVM = context.watch(); + return BottomNavigationBar( + items: [ + 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: dashboardVM.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) => dashboardVM.onNavbarTapped(index), + ); + } +} diff --git a/lib/views/dashboard/widgets/drawer_widget.dart b/lib/views/dashboard/widgets/drawer_widget.dart index 8be46b6..a169ac3 100644 --- a/lib/views/dashboard/widgets/drawer_widget.dart +++ b/lib/views/dashboard/widgets/drawer_widget.dart @@ -1,15 +1,15 @@ -import 'package:mc_common_app/classes/app_state_cm.dart'; +import 'package:mc_common_app/classes/app_state.dart'; import 'package:mc_common_app/classes/consts.dart'; import 'package:mc_common_app/config/routes.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/widget_extensions.dart'; -import 'package:car_customer_app/generated/locale_keys.g.dart'; +import 'package:mc_common_app/generated/locale_keys.g.dart'; import 'package:mc_common_app/models/user/image_response.dart'; import 'package:mc_common_app/theme/colors.dart'; import 'package:mc_common_app/utils/navigator.dart'; import 'package:mc_common_app/utils/utils.dart'; import 'package:car_customer_app/view_models/dashboard_view_model.dart'; +import 'package:mc_common_app/widgets/extensions/extensions_widget.dart'; import 'package:mc_common_app/widgets/show_fill_button.dart'; import 'package:easy_localization/easy_localization.dart'; import 'package:flutter/material.dart'; @@ -50,7 +50,7 @@ class _CustomDrawerState extends State { height: 200, color: MyColors.darkPrimaryColor.withOpacity(0.01), child: Image.network( - ApiConsts.baseUrlServices + AppStateCm().getUser.data!.userInfo!.userImageUrl.toString(), + ApiConsts.baseUrlServices + AppState().getUser.data!.userInfo!.userImageUrl.toString(), ), ), Positioned( @@ -94,7 +94,7 @@ class _CustomDrawerState extends State { if (response.messageStatus == 1) { Utils.showToast("Image is Deleted"); setState(() { - AppStateCm().getUser.data!.userInfo!.userImageUrl = response.data; + AppState().getUser.data!.userInfo!.userImageUrl = response.data; }); } Utils.hideLoading(context); @@ -123,7 +123,7 @@ class _CustomDrawerState extends State { fontSize: 20, letterSpacing: -1.44, ), - AppStateCm().getUser.data!.userInfo!.roleName!.toText(fontSize: 10), + AppState().getUser.data!.userInfo!.roleName!.toText(fontSize: 10), ], ), ), @@ -161,8 +161,9 @@ class _CustomDrawerState extends State { title: LocaleKeys.account.tr().toText(fontSize: 12), ), ListTile( - leading: Image.asset( - "assets/images/ic_world.png", + leading: + Image.asset( + MyAssets.icWorldPng, width: 20, height: 20, color: MyColors.darkPrimaryColor, diff --git a/pubspec.yaml b/pubspec.yaml index 3c34c8f..1c5a0d4 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -61,12 +61,6 @@ flutter: # the material Icons class. uses-material-design: true - assets: - - assets/ - - assets/langs/ - - assets/icons/ - - assets/images/ - # To add assets to your application, add an assets section, like this: # assets: # - images/a_dot_burr.jpeg