diff --git a/assets/fonts/DMSans-Black.ttf b/assets/fonts/DMSans-Black.ttf
new file mode 100644
index 0000000..de9edff
Binary files /dev/null and b/assets/fonts/DMSans-Black.ttf differ
diff --git a/assets/fonts/DMSans-Bold.ttf b/assets/fonts/DMSans-Bold.ttf
new file mode 100644
index 0000000..d585b22
Binary files /dev/null and b/assets/fonts/DMSans-Bold.ttf differ
diff --git a/assets/fonts/DMSans-Medium.ttf b/assets/fonts/DMSans-Medium.ttf
new file mode 100644
index 0000000..e644104
Binary files /dev/null and b/assets/fonts/DMSans-Medium.ttf differ
diff --git a/assets/fonts/DMSans-Regular.ttf b/assets/fonts/DMSans-Regular.ttf
new file mode 100644
index 0000000..fb66a28
Binary files /dev/null and b/assets/fonts/DMSans-Regular.ttf differ
diff --git a/assets/fonts/DMSans-SemiBold.ttf b/assets/fonts/DMSans-SemiBold.ttf
new file mode 100644
index 0000000..848f18c
Binary files /dev/null and b/assets/fonts/DMSans-SemiBold.ttf differ
diff --git a/assets/fonts/UberMoveTextBold.otf b/assets/fonts/UberMoveTextBold.otf
deleted file mode 100644
index 979fbc1..0000000
Binary files a/assets/fonts/UberMoveTextBold.otf and /dev/null differ
diff --git a/assets/fonts/UberMoveTextLight.otf b/assets/fonts/UberMoveTextLight.otf
deleted file mode 100644
index 75ca07e..0000000
Binary files a/assets/fonts/UberMoveTextLight.otf and /dev/null differ
diff --git a/assets/fonts/UberMoveTextMedium.otf b/assets/fonts/UberMoveTextMedium.otf
deleted file mode 100644
index 43bbda8..0000000
Binary files a/assets/fonts/UberMoveTextMedium.otf and /dev/null differ
diff --git a/assets/fonts/UberMoveTextRegular.otf b/assets/fonts/UberMoveTextRegular.otf
deleted file mode 100644
index 834b0de..0000000
Binary files a/assets/fonts/UberMoveTextRegular.otf and /dev/null differ
diff --git a/assets/icons/common/ic_logo.svg b/assets/icons/common/ic_logo.svg
new file mode 100644
index 0000000..ba9ee32
--- /dev/null
+++ b/assets/icons/common/ic_logo.svg
@@ -0,0 +1,9 @@
+
diff --git a/assets/icons/dark/ic_splash.svg b/assets/icons/dark/ic_splash.svg
new file mode 100644
index 0000000..4eb4f46
--- /dev/null
+++ b/assets/icons/dark/ic_splash.svg
@@ -0,0 +1,690 @@
+
diff --git a/assets/icons/ic_account.svg b/assets/icons/ic_account.svg
deleted file mode 100644
index b0d08f7..0000000
--- a/assets/icons/ic_account.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/assets/icons/ic_account_active.svg b/assets/icons/ic_account_active.svg
deleted file mode 100644
index c71af2c..0000000
--- a/assets/icons/ic_account_active.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/assets/icons/ic_allergy_friendly.png b/assets/icons/ic_allergy_friendly.png
deleted file mode 100644
index 589a281..0000000
Binary files a/assets/icons/ic_allergy_friendly.png and /dev/null differ
diff --git a/assets/icons/ic_arrow_btm.svg b/assets/icons/ic_arrow_btm.svg
deleted file mode 100644
index 80e56a9..0000000
--- a/assets/icons/ic_arrow_btm.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/assets/icons/ic_arrow_right.svg b/assets/icons/ic_arrow_right.svg
deleted file mode 100644
index 96c0b3f..0000000
--- a/assets/icons/ic_arrow_right.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/assets/icons/ic_arrow_right_light.svg b/assets/icons/ic_arrow_right_light.svg
deleted file mode 100644
index fefd449..0000000
--- a/assets/icons/ic_arrow_right_light.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/assets/icons/ic_back.svg b/assets/icons/ic_back.svg
deleted file mode 100644
index 03ec0db..0000000
--- a/assets/icons/ic_back.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/assets/icons/ic_basket.svg b/assets/icons/ic_basket.svg
deleted file mode 100644
index ace7342..0000000
--- a/assets/icons/ic_basket.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/assets/icons/ic_basket_active.svg b/assets/icons/ic_basket_active.svg
deleted file mode 100644
index 0f9f559..0000000
--- a/assets/icons/ic_basket_active.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/assets/icons/ic_best.png b/assets/icons/ic_best.png
deleted file mode 100644
index 8bcea14..0000000
Binary files a/assets/icons/ic_best.png and /dev/null differ
diff --git a/assets/icons/ic_browse.svg b/assets/icons/ic_browse.svg
deleted file mode 100644
index 6206340..0000000
--- a/assets/icons/ic_browse.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
diff --git a/assets/icons/ic_browse_active.svg b/assets/icons/ic_browse_active.svg
deleted file mode 100644
index 4f9beea..0000000
--- a/assets/icons/ic_browse_active.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
diff --git a/assets/icons/ic_carts.svg b/assets/icons/ic_carts.svg
deleted file mode 100644
index b259e6c..0000000
--- a/assets/icons/ic_carts.svg
+++ /dev/null
@@ -1,45 +0,0 @@
-
diff --git a/assets/icons/ic_check.svg b/assets/icons/ic_check.svg
deleted file mode 100644
index 82387ec..0000000
--- a/assets/icons/ic_check.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/assets/icons/ic_check1.svg b/assets/icons/ic_check1.svg
deleted file mode 100644
index c984c5c..0000000
--- a/assets/icons/ic_check1.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/assets/icons/ic_clock.png b/assets/icons/ic_clock.png
deleted file mode 100644
index 6a6769b..0000000
Binary files a/assets/icons/ic_clock.png and /dev/null differ
diff --git a/assets/icons/ic_clock.svg b/assets/icons/ic_clock.svg
deleted file mode 100644
index fdc8a5b..0000000
--- a/assets/icons/ic_clock.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
diff --git a/assets/icons/ic_close.svg b/assets/icons/ic_close.svg
deleted file mode 100644
index f64b147..0000000
--- a/assets/icons/ic_close.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/assets/icons/ic_current_loc.svg b/assets/icons/ic_current_loc.svg
deleted file mode 100644
index 8a94212..0000000
--- a/assets/icons/ic_current_loc.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/assets/icons/ic_deals.svg b/assets/icons/ic_deals.svg
deleted file mode 100644
index a6210fb..0000000
--- a/assets/icons/ic_deals.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/assets/icons/ic_deliver.svg b/assets/icons/ic_deliver.svg
deleted file mode 100644
index 1b95eb6..0000000
--- a/assets/icons/ic_deliver.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/assets/icons/ic_delivery_time.svg b/assets/icons/ic_delivery_time.svg
deleted file mode 100644
index fdc8a5b..0000000
--- a/assets/icons/ic_delivery_time.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
diff --git a/assets/icons/ic_dislike.svg b/assets/icons/ic_dislike.svg
deleted file mode 100644
index 9f571ac..0000000
--- a/assets/icons/ic_dislike.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/assets/icons/ic_dislike_grey.svg b/assets/icons/ic_dislike_grey.svg
deleted file mode 100644
index ab9926b..0000000
--- a/assets/icons/ic_dislike_grey.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/assets/icons/ic_eat.svg b/assets/icons/ic_eat.svg
deleted file mode 100644
index 66c47ee..0000000
--- a/assets/icons/ic_eat.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/assets/icons/ic_edit.svg b/assets/icons/ic_edit.svg
deleted file mode 100644
index e4e6747..0000000
--- a/assets/icons/ic_edit.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/assets/icons/ic_empty_basket.svg b/assets/icons/ic_empty_basket.svg
deleted file mode 100644
index 4d06763..0000000
--- a/assets/icons/ic_empty_basket.svg
+++ /dev/null
@@ -1,38 +0,0 @@
-
diff --git a/assets/icons/ic_eng.png b/assets/icons/ic_eng.png
deleted file mode 100644
index 8be3aa9..0000000
Binary files a/assets/icons/ic_eng.png and /dev/null differ
diff --git a/assets/icons/ic_eye.svg b/assets/icons/ic_eye.svg
deleted file mode 100644
index 9c30879..0000000
--- a/assets/icons/ic_eye.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
diff --git a/assets/icons/ic_filter.svg b/assets/icons/ic_filter.svg
deleted file mode 100644
index 6562b91..0000000
--- a/assets/icons/ic_filter.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
diff --git a/assets/icons/ic_gift.svg b/assets/icons/ic_gift.svg
deleted file mode 100644
index c9ddb81..0000000
--- a/assets/icons/ic_gift.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/assets/icons/ic_gluten_free.png b/assets/icons/ic_gluten_free.png
deleted file mode 100644
index f355f5b..0000000
Binary files a/assets/icons/ic_gluten_free.png and /dev/null differ
diff --git a/assets/icons/ic_help.svg b/assets/icons/ic_help.svg
deleted file mode 100644
index e79cbce..0000000
--- a/assets/icons/ic_help.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/assets/icons/ic_home.svg b/assets/icons/ic_home.svg
deleted file mode 100644
index 25b184d..0000000
--- a/assets/icons/ic_home.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/assets/icons/ic_home_active.svg b/assets/icons/ic_home_active.svg
deleted file mode 100644
index c9fac1a..0000000
--- a/assets/icons/ic_home_active.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/assets/icons/ic_language.svg b/assets/icons/ic_language.svg
deleted file mode 100644
index 4da9bb6..0000000
--- a/assets/icons/ic_language.svg
+++ /dev/null
@@ -1,2 +0,0 @@
-
-
\ No newline at end of file
diff --git a/assets/icons/ic_like.svg b/assets/icons/ic_like.svg
deleted file mode 100644
index 7162ed4..0000000
--- a/assets/icons/ic_like.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/assets/icons/ic_location.svg b/assets/icons/ic_location.svg
deleted file mode 100644
index 364bb1a..0000000
--- a/assets/icons/ic_location.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/assets/icons/ic_next.svg b/assets/icons/ic_next.svg
deleted file mode 100644
index 9323e92..0000000
--- a/assets/icons/ic_next.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/assets/icons/ic_next_grey.svg b/assets/icons/ic_next_grey.svg
deleted file mode 100644
index 8d523a4..0000000
--- a/assets/icons/ic_next_grey.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/assets/icons/ic_orders.png b/assets/icons/ic_orders.png
deleted file mode 100644
index 6878743..0000000
Binary files a/assets/icons/ic_orders.png and /dev/null differ
diff --git a/assets/icons/ic_orders_svg.svg b/assets/icons/ic_orders_svg.svg
deleted file mode 100644
index b45ffa1..0000000
--- a/assets/icons/ic_orders_svg.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/assets/icons/ic_oval.svg b/assets/icons/ic_oval.svg
deleted file mode 100644
index 1c71a06..0000000
--- a/assets/icons/ic_oval.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/assets/icons/ic_picked.svg b/assets/icons/ic_picked.svg
deleted file mode 100644
index 714d1a8..0000000
--- a/assets/icons/ic_picked.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-
diff --git a/assets/icons/ic_popular.svg b/assets/icons/ic_popular.svg
deleted file mode 100644
index a11c4c7..0000000
--- a/assets/icons/ic_popular.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/assets/icons/ic_promotions.svg b/assets/icons/ic_promotions.svg
deleted file mode 100644
index 888aa32..0000000
--- a/assets/icons/ic_promotions.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/assets/icons/ic_rating.svg b/assets/icons/ic_rating.svg
deleted file mode 100644
index 9eab005..0000000
--- a/assets/icons/ic_rating.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/assets/icons/ic_rewards.svg b/assets/icons/ic_rewards.svg
deleted file mode 100644
index 52c5bdc..0000000
--- a/assets/icons/ic_rewards.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/assets/icons/ic_rus.png b/assets/icons/ic_rus.png
deleted file mode 100644
index dbc0e4f..0000000
Binary files a/assets/icons/ic_rus.png and /dev/null differ
diff --git a/assets/icons/ic_search.svg b/assets/icons/ic_search.svg
deleted file mode 100644
index 40fb2bf..0000000
--- a/assets/icons/ic_search.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/assets/icons/ic_settings.svg b/assets/icons/ic_settings.svg
deleted file mode 100644
index 8b93fa6..0000000
--- a/assets/icons/ic_settings.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
diff --git a/assets/icons/ic_uber.svg b/assets/icons/ic_uber.svg
deleted file mode 100644
index cf4720e..0000000
--- a/assets/icons/ic_uber.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/assets/icons/ic_uber_pass.svg b/assets/icons/ic_uber_pass.svg
deleted file mode 100644
index 42f1658..0000000
--- a/assets/icons/ic_uber_pass.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/assets/icons/ic_uzb.png b/assets/icons/ic_uzb.png
deleted file mode 100644
index 0e7b5d5..0000000
Binary files a/assets/icons/ic_uzb.png and /dev/null differ
diff --git a/assets/icons/ic_vegen.png b/assets/icons/ic_vegen.png
deleted file mode 100644
index 3098f77..0000000
Binary files a/assets/icons/ic_vegen.png and /dev/null differ
diff --git a/assets/icons/ic_vegetarian.png b/assets/icons/ic_vegetarian.png
deleted file mode 100644
index a00aca3..0000000
Binary files a/assets/icons/ic_vegetarian.png and /dev/null differ
diff --git a/assets/icons/ic_wallet.svg b/assets/icons/ic_wallet.svg
deleted file mode 100644
index 87c5884..0000000
--- a/assets/icons/ic_wallet.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/assets/icons/light/ic_splash.svg b/assets/icons/light/ic_splash.svg
new file mode 100644
index 0000000..912127b
--- /dev/null
+++ b/assets/icons/light/ic_splash.svg
@@ -0,0 +1,1996 @@
+
diff --git a/assets/images/img_alcohol.png b/assets/images/img_alcohol.png
deleted file mode 100644
index daeb0cc..0000000
Binary files a/assets/images/img_alcohol.png and /dev/null differ
diff --git a/assets/images/img_american.png b/assets/images/img_american.png
deleted file mode 100644
index ccf5b81..0000000
Binary files a/assets/images/img_american.png and /dev/null differ
diff --git a/assets/images/img_asian.png b/assets/images/img_asian.png
deleted file mode 100644
index f6d9157..0000000
Binary files a/assets/images/img_asian.png and /dev/null differ
diff --git a/assets/images/img_avatar.jpg b/assets/images/img_avatar.jpg
deleted file mode 100644
index b1d25f5..0000000
Binary files a/assets/images/img_avatar.jpg and /dev/null differ
diff --git a/assets/images/img_burger.png b/assets/images/img_burger.png
deleted file mode 100644
index 3123511..0000000
Binary files a/assets/images/img_burger.png and /dev/null differ
diff --git a/assets/images/img_burger2.png b/assets/images/img_burger2.png
deleted file mode 100644
index 457b01b..0000000
Binary files a/assets/images/img_burger2.png and /dev/null differ
diff --git a/assets/images/img_carribean.png b/assets/images/img_carribean.png
deleted file mode 100644
index 6e9984c..0000000
Binary files a/assets/images/img_carribean.png and /dev/null differ
diff --git a/assets/images/img_chinese.png b/assets/images/img_chinese.png
deleted file mode 100644
index f85acf0..0000000
Binary files a/assets/images/img_chinese.png and /dev/null differ
diff --git a/assets/images/img_convenience.png b/assets/images/img_convenience.png
deleted file mode 100644
index e3ef7ad..0000000
Binary files a/assets/images/img_convenience.png and /dev/null differ
diff --git a/assets/images/img_desert.png b/assets/images/img_desert.png
deleted file mode 100644
index 900f7cc..0000000
Binary files a/assets/images/img_desert.png and /dev/null differ
diff --git a/assets/images/img_fast_food.png b/assets/images/img_fast_food.png
deleted file mode 100644
index abae988..0000000
Binary files a/assets/images/img_fast_food.png and /dev/null differ
diff --git a/assets/images/img_flowers.png b/assets/images/img_flowers.png
deleted file mode 100644
index 8ea8923..0000000
Binary files a/assets/images/img_flowers.png and /dev/null differ
diff --git a/assets/images/img_french.png b/assets/images/img_french.png
deleted file mode 100644
index 3d5d017..0000000
Binary files a/assets/images/img_french.png and /dev/null differ
diff --git a/assets/images/img_grocery.png b/assets/images/img_grocery.png
deleted file mode 100644
index 560aa8c..0000000
Binary files a/assets/images/img_grocery.png and /dev/null differ
diff --git a/assets/images/img_halal.png b/assets/images/img_halal.png
deleted file mode 100644
index f61bbad..0000000
Binary files a/assets/images/img_halal.png and /dev/null differ
diff --git a/assets/images/img_ice_cream.png b/assets/images/img_ice_cream.png
deleted file mode 100644
index 5b5e1ea..0000000
Binary files a/assets/images/img_ice_cream.png and /dev/null differ
diff --git a/assets/images/img_indian.png b/assets/images/img_indian.png
deleted file mode 100644
index cda49b1..0000000
Binary files a/assets/images/img_indian.png and /dev/null differ
diff --git a/assets/images/img_pet_supplies.png b/assets/images/img_pet_supplies.png
deleted file mode 100644
index 4ccd4c8..0000000
Binary files a/assets/images/img_pet_supplies.png and /dev/null differ
diff --git a/assets/images/img_pick_up.png b/assets/images/img_pick_up.png
deleted file mode 100644
index af00009..0000000
Binary files a/assets/images/img_pick_up.png and /dev/null differ
diff --git a/assets/images/img_retails.png b/assets/images/img_retails.png
deleted file mode 100644
index 0e92e77..0000000
Binary files a/assets/images/img_retails.png and /dev/null differ
diff --git a/assets/images/img_ride.png b/assets/images/img_ride.png
deleted file mode 100644
index a0f9c38..0000000
Binary files a/assets/images/img_ride.png and /dev/null differ
diff --git a/assets/images/img_speciality.jpg b/assets/images/img_speciality.jpg
deleted file mode 100644
index 9c02832..0000000
Binary files a/assets/images/img_speciality.jpg and /dev/null differ
diff --git a/assets/images/img_takeout.png b/assets/images/img_takeout.png
deleted file mode 100644
index 0599c6c..0000000
Binary files a/assets/images/img_takeout.png and /dev/null differ
diff --git a/assets/translations/app_en.arb b/assets/translations/app_en.arb
index 51a6554..038815a 100644
--- a/assets/translations/app_en.arb
+++ b/assets/translations/app_en.arb
@@ -1,207 +1,9 @@
{
- "useYourTAxiAccount":"Use your uber account to get started",
- "enterYourMobileNumber":"Enter your mobile number",
- "mobileNumber":"Mobile number",
- "next":"Next",
- "contestToGetCallAndSms":"By proceeding, you consent to get calls, Whatsapp or SMS messages, including by automated means, from uber and its affiliates to the number provided.",
- "continueWithGoogle":"Continue with google",
- "or":"or",
- "welcomeBack":"Welcome back, John",
- "pleaseEnterYourPassword":"Please enter your password",
- "iHaveForgotPassword":"I've forgotten my password",
- "iCantSignIn":"I cant sign in",
- "enter4DigitCodeSentYou":"Enter the 4-digit code sent to you at {phone}",
- "@enter4DigitCodeSentYou":{
- "placeholders":{
- "phone":{
- "type":"String"
- }
- }
- },
- "iHavenRecievedCode":"I haven’t recieved a code (${time})",
- "@iHavenRecievedCode":{
- "placeholders":{
- "time":{
- "type":"String"
- }
- }
- },
- "delivery":"Delivery",
- "pickUp":"Pickup",
- "dineIn":"Dine-in",
- "allCategories": "All categories",
- "convenience": "Convenience",
- "alcohol": "Alcohol",
- "petSupplies": "Pet Supplies",
- "flowers": "Flowers",
- "grocery": "Grocery",
- "american": "American",
- "speciality": "Speciality",
- "takeout": "Takeout",
- "asian": "Asian",
- "iceCream": "Ice Cream",
- "halal": "Halal",
- "retails": "Retails",
- "caribbean": "Caribbean",
- "indian": "Indian",
- "french": "French",
- "fastFoods": "Fast Foods",
- "burger": "Burger",
- "ride": "Ride",
- "chinese": "Chinese",
- "dessert": "Dessert",
- "more":"More",
- "orderDetails": "Order details",
- "deliverNow": "Deliver now",
- "schedule": "Schedule",
- "enterNewAddress": "Enter a new address",
- "nearby": "Nearby",
- "currentLocation": "Current location",
- "enable": "Enable",
- "recentLocations": "Recent locations",
- "allFilters": "All filters",
- "sort": "Sort",
- "pickedForYou": "Picked for you (default)",
- "mostPopular": "Most popular",
- "rating": "Rating",
- "deliveryTime": "Delivery time",
- "fromUberEats": "From Uber Eats",
- "deals": "Deals",
- "bestOverall": "Best overall",
- "priceRange": "Price range",
- "maxDeliveryFee": "Max. Delivery Fee",
- "dietary": "Dietary",
- "vegetarian": "Vegetarian",
- "vegan": "Vegan",
- "glutenFree": "Gluten-free",
- "halal": "Halal",
- "allergyFriendly": "Allergy friendly",
- "atLeast":"At least",
- "apply": "Apply",
- "pickedForYouDefault": "Picked for you (default)",
- "popular": "Most popular",
- "topRated": "Top rated",
- "fast": "Fast",
- "delivery": "Delivery",
- "featuredStores": "Featured stores",
- "fromUberEats": "From {name}",
- "@fromUberEats":{
- "placeholders": {
- "name": {
- "type": "String"
- }
- }
- },
- "opensAt": "Opens at {time}",
- "@opensAt": {
- "placeholders":{
- "time": {
- "type": "String"
- }
- }
- },
- "spendAndSave": "Spend {spend}, save {save}",
- "@spendAndSave": {
- "placeholders":{
- "spend": {
- "type": "String"
- },
- "save": {
- "type": "String"
- }
- }
-
- },
- "cartsTitle": "Carts",
- "addItemsStartBasket": "Add items to start a basket",
- "basketHint": "Once you add items from a restaurant or store, your basket will appear here.",
- "startShopping": "Start Shopping",
- "orders": "Orders",
- "recentSearches": "Recent searches",
- "cafe": "Cafe",
- "irish": "Irish",
-
- "topCategories": "Top Categories",
- "breakfastAndBrunch": "Breakfast and Brunch",
- "coffeeAndTea": "Coffee and Tea",
- "chinese": "Chinese",
- "indian": "Indian",
- "latestDeals": "Latest Deals",
- "restaurantRewards": "Restaurant Rewards",
- "bestOverall": "Best Overall",
- "nationwideShipping": "Nationwide Shipping",
- "mexican": "Mexican",
- "fastFood": "Fast Food",
- "healthy": "Healthy",
- "pizza": "Pizza",
- "sandwich": "Sandwich",
- "asian": "Asian",
- "bakery": "Bakery",
- "allCategories": "All categories",
- "categoriesShort": "Food, shopping, drinks, etc.",
- "yourFavourites": "Your favourites",
- "restaurantRewards": "Restaurant Rewards",
- "wallet": "Wallet",
- "sendAGift": "Send a gift",
- "businessPreferences": "Business preferences",
- "businessSub": "Make work meals quicker and easier",
- "help": "Help",
- "promotions": "Promotions",
- "uberPass": "Uber Pass",
- "uberPassSub": "Join free for 1 month",
- "deliverWithUber": "Deliver with Uber",
- "settings": "Settings",
- "home": "Home",
- "browse": "Browse",
- "baskets": "Baskets",
- "account": "Account",
- "changeLanguage": "Change language",
- "language": "Language",
- "login": "Login",
- "phone_number": "Phone number",
- "enter_phone_number": "Enter phone number",
- "password": "Password",
- "enter_password": "Enter password",
- "forgot_password": "Forgot password",
- "continue_str": "Continue",
- "dont_have_account": "Don't have an account?",
- "sign_up": "SignUp",
- "field_cannot_be_empty": "This field cannot be empty",
- "password_too_short": "Password must be at least 6 characters long",
- "invalid_phone_format": "Invalid phone number format",
- "first_name": "First name",
- "enter_first_name": "Enter first name",
- "repeat_password": "Repeat password",
- "enter_repeat_password": "Enter repeat password",
- "already_has_account": "Already have an account?",
- "unexpected_error": "Unexpected error",
- "consent_message": "By proceeding, you consent to get calls or SMS messages, including by automated means, from {appName} and its affiliates to the number provided.",
- "@consent_message": {
- "placeholders": {
- "appName": {
- "type": "String",
- "example": "Uber"
- }
- }
- },
- "otp_code_incomplete": "Code is incomplete. Please enter the full code.",
- "passwords_do_not_match": "Passwords do not match.",
- "reset_password": "Reset password",
- "new_password": "New password",
- "enter_otp_code": "Enter the 5-digit code sent to you at {phoneNumber}",
- "@enter_otp_code":{
- "placeholders": {
- "phoneNumber": {
- "type": "String"
- }
- }
- },
- "resend_otp_after": "You can resend OTP after"
-
-
-
-
-
-
+ "field_cannot_be_empty": "This field cannot be empty",
+ "invalid_phone_format": "Invalid phone number format",
+ "password_too_short": "Password must be at least 6 characters long",
+ "passwords_do_not_match": "Passwords do not match",
+ "otp_code_incomplete": "OTP code is incomplete",
+ "unexpected_error": "An unexpected error occurred. Please try again."
}
\ No newline at end of file
diff --git a/assets/translations/app_ru.arb b/assets/translations/app_ru.arb
index e48d97e..7d4052f 100644
--- a/assets/translations/app_ru.arb
+++ b/assets/translations/app_ru.arb
@@ -1,205 +1,9 @@
{
- "useYourTAxiAccount": "Используйте свой аккаунт Uber, чтобы начать",
- "enterYourMobileNumber": "Введите свой номер телефона",
- "mobileNumber": "Номер телефона",
- "next": "Далее",
- "contestToGetCallAndSms": "Продолжая, вы соглашаетесь получать звонки, сообщения WhatsApp или SMS, включая автоматические, от Uber и его партнеров на указанный номер.",
- "continueWithGoogle": "Продолжить через Google",
- "or": "или",
- "welcomeBack": "С возвращением, {name}",
- "@welcomeBack": {
- "placeholders": {
- "name": {
- "type": "String"
- }
- }
- },
- "pleaseEnterYourPassword": "Пожалуйста, введите свой пароль",
- "iHaveForgotPassword": "Я забыл пароль",
- "iCantSignIn": "Не могу войти в систему",
- "enter4DigitCodeSentYou": "Введите 4-значный код, отправленный на номер {phone}",
- "@enter4DigitCodeSentYou": {
- "placeholders": {
- "phone": {
- "type": "String"
- }
- }
- },
- "iHavenRecievedCode": "Я не получил код (${time})",
- "@iHavenRecievedCode": {
- "placeholders": {
- "time": {
- "type": "String"
- }
- }
- },
- "delivery": "Доставка",
- "pickUp": "Самовывоз",
- "dineIn": "На месте",
- "allCategories": "Все категории",
- "convenience": "Магазин",
- "alcohol": "Алкоголь",
- "petSupplies": "Для питомцев",
- "flowers": "Цветы",
- "grocery": "Продукты",
- "american": "Американская",
- "speciality": "Особенная",
- "takeout": "На вынос",
- "asian": "Азиатская",
- "iceCream": "Мороженое",
- "halal": "Халяль",
- "retails": "Розница",
- "caribbean": "Карибская",
- "indian": "Индийская",
- "french": "Французская",
- "fastFoods": "Фастфуд",
- "burger": "Бургер",
- "ride": "Поездка",
- "chinese": "Китайская",
- "dessert": "Десерт",
- "more":"Ещё",
- "orderDetails": "Детали заказа",
- "deliverNow": "Доставить сейчас",
- "schedule": "Запланировать",
- "enterNewAddress": "Введите новый адрес",
- "nearby": "Рядом",
- "currentLocation": "Текущее местоположение",
- "enable": "Включить",
- "recentLocations": "Недавние адреса",
- "allFilters": "Все фильтры",
- "sort": "Сортировка",
- "pickedForYou": "Подобрано для вас (по умолчанию)",
- "mostPopular": "Самые популярные",
- "rating": "Рейтинг",
- "deliveryTime": "Время доставки",
- "fromUberEats": "От Uber Eats",
- "deals": "Скидки",
- "bestOverall": "Лучший выбор",
- "priceRange": "Диапазон цен",
- "maxDeliveryFee": "Макс. стоимость доставки",
- "dietary": "Диета",
- "vegetarian": "Вегетарианское",
- "vegan": "Веганское",
- "glutenFree": "Без глютена",
- "halal": "Халяль",
- "allergyFriendly": "Без аллергенов",
- "atLeast":"Kак минимум",
- "apply": "Применить",
- "pickedForYouDefault": "Выбрано для вас (по умолчанию)",
- "popular": "Самые популярные",
- "topRated": "Высокий рейтинг",
- "fast": "Быстро",
- "delivery": "Доставка",
- "featuredStores": "Популярные магазины",
- "fromUberEats": "От {name}",
- "@fromUberEats":{
- "placeholders": {
- "name": {
- "type": "String"
- }
- }
- },
- "opensAt": "Открывается в {time}",
- "opensAt@placeholders": {
- "time": {}
- },
- "spendAndSave": "Потратьте {spend}, сэкономьте {save}",
- "spendAndSave@placeholders": {
- "spend": {},
- "save": {}
- },
- "cartsTitle": "Корзины",
- "addItemsStartBasket": "Добавьте товары, чтобы создать корзину",
- "basketHint": "Когда вы добавите товары из ресторана или магазина, ваша корзина появится здесь.",
- "startShopping": "Начать покупки",
- "orders": "Заказы",
- "recentSearches": "Недавние запросы",
- "cafe": "Кафе",
- "irish": "Ирландская кухня",
- "topCategories": "Популярные категории",
- "breakfastAndBrunch": "Завтрак и бранч",
- "coffeeAndTea": "Кофе и чай",
- "chinese": "Китайская кухня",
- "indian": "Индийская кухня",
- "latestDeals": "Новые предложения",
- "restaurantRewards": "Ресторанные бонусы",
- "bestOverall": "Лучшие варианты",
- "nationwideShipping": "Доставка по всей стране",
- "mexican": "Мексиканская кухня",
- "fastFood": "Фастфуд",
- "healthy": "Здоровая еда",
- "pizza": "Пицца",
- "sandwich": "Сэндвич",
- "asian": "Азиатская кухня",
- "bakery": "Пекарня",
- "categoriesShort": "Еда, покупки, напитки и т.д.",
- "allCategories": "Все категории",
- "yourFavourites": "Избранное",
- "restaurantRewards": "Бонусы ресторанов",
- "wallet": "Кошелёк",
- "sendAGift": "Отправить подарок",
- "businessPreferences": "Рабочие предпочтения",
- "businessSub": "Сделайте рабочие обеды быстрее и проще",
- "help": "Помощь",
- "promotions": "Акции",
- "uberPass": "Uber Pass",
- "uberPassSub": "Присоединяйтесь бесплатно на 1 месяц",
- "deliverWithUber": "Доставляйте с Uber",
- "settings": "Настройки",
- "home": "Главная",
- "browse": "Категории",
- "baskets": "Корзина",
- "account": "Аккаунт",
- "language": "Язык",
- "changeLanguage": "Сменить язык",
- "login": "Вход",
- "phone_number": "Номер телефона",
- "enter_phone_number": "Введите номер телефона",
- "password": "Пароль",
- "enter_password": "Введите пароль",
- "forgot_password": "Забыли пароль",
- "continue_str": "Продолжить",
- "dont_have_account": "У вас нет аккаунта?",
- "sign_up": "Зарегистрироваться",
- "field_cannot_be_empty": "Это поле не может быть пустым",
- "password_too_short": "Пароль не может быть короче 6 символов",
- "invalid_phone_format": "Неверный формат номера телефона",
- "first_name": "Имя",
- "enter_first_name": "Введите имя",
- "repeat_password": "Повторите пароль",
- "enter_repeat_password": "Введите пароль ещё раз",
- "already_has_account": "Уже есть аккаунт?",
- "unexpected_error": "Неожиданная ошибка",
- "consent_message": "Продолжая, вы соглашаетесь получать звонки или SMS-сообщения, включая автоматические, от {appName} и его партнёров на указанный номер.",
- "@consent_message": {
- "placeholders": {
- "appName": {
- "type": "String",
- "example": "Uber"
- }
- }
- },
- "otp_code_incomplete": "Код неполный. Пожалуйста, введите полный код.",
- "passwords_do_not_match": "Пароли не совпадают.",
- "reset_password": "Восстановить пароль",
- "new_password": "Новый пароль",
- "enter_otp_code": "Введите 5-значный код, отправленный на номер {phoneNumber}",
- "@enter_otp_code":{
- "placeholders": {
- "phoneNumber": {
- "type": "String"
- }
- }
- },
- "resend_otp_after": "Вы можете повторно отправить код через"
+ "field_cannot_be_empty": "Поле не может быть пустым",
+ "invalid_phone_format": "Неверный формат номера телефона",
+ "password_too_short": "Пароль должен содержать не менее 6 символов",
+ "passwords_do_not_match": "Пароли не совпадают",
+ "otp_code_incomplete": "Код подтверждения введён не полностью",
+ "unexpected_error": "Произошла непредвиденная ошибка. Пожалуйста, попробуйте снова."
-
-
-
-
-
-
-
-
-
-}
+}
\ No newline at end of file
diff --git a/assets/translations/app_uz.arb b/assets/translations/app_uz.arb
index ae22aaf..46b7cc5 100644
--- a/assets/translations/app_uz.arb
+++ b/assets/translations/app_uz.arb
@@ -1,206 +1,9 @@
{
- "useYourTAxiAccount": "Boshlash uchun Uber hisobingizdan foydalaning",
- "enterYourMobileNumber": "Telefon raqamingizni kiriting",
- "mobileNumber": "Telefon raqami",
- "next": "Keyingi",
- "contestToGetCallAndSms": "Davom etish orqali siz Uber va uning hamkorlaridan avtomatlashtirilgan qo‘ng‘iroqlar, WhatsApp yoki SMS xabarlarini olishga rozilik bildirasiz.",
- "continueWithGoogle": "Google orqali davom etish",
- "or": "yoki",
- "welcomeBack": "Xush kelibsiz, {name}",
- "@welcomeBack": {
- "placeholders": {
- "name": {
- "type": "String"
- }
- }
- },
- "pleaseEnterYourPassword": "Iltimos, parolingizni kiriting",
- "iHaveForgotPassword": "Parolimni unutdim",
- "iCantSignIn": "Kirishda muammo bor",
- "enter4DigitCodeSentYou": "Sizga {phone} raqamiga yuborilgan 4 xonali kodni kiriting",
- "@enter4DigitCodeSentYou": {
- "placeholders": {
- "phone": {
- "type": "String"
- }
- }
- },
- "iHavenRecievedCode": "Men hali kodni olmabman (${time})",
- "@iHavenRecievedCode": {
- "placeholders": {
- "time": {
- "type": "String"
- }
- }
- },
- "delivery": "Yetkazib berish",
- "pickUp": "Olib ketish",
- "dineIn": "Joyida",
- "allCategories": "Barcha toifalar",
- "convenience": "Do‘kon",
- "alcohol": "Alkogol",
- "petSupplies": "Uy hayvoni uchun",
- "flowers": "Gullar",
- "grocery": "Bozor",
- "american": "Amerika",
- "speciality": "Maxsus",
- "takeout": "Olib ketish",
- "asian": "Osiyo",
- "iceCream": "Muzqaymoq",
- "halal": "Halol",
- "retails": "Do‘konlar",
- "caribbean": "Karib",
- "indian": "Hind",
- "french": "Fransuz",
- "fastFoods": "Fast-fud",
- "burger": "Burger",
- "ride": "Yo‘l",
- "chinese": "Xitoy",
- "dessert": "Desert",
- "more":"Ko'proq",
- "orderDetails": "Buyurtma tafsilotlari",
- "deliverNow": "Hozir yetkazish",
- "schedule": "Rejalashtirish",
- "enterNewAddress": "Yangi manzil kiriting",
- "nearby": "Yaqin joylar",
- "currentLocation": "Joriy joylashuv",
- "enable": "Yoqqish",
- "recentLocations": "Yaqinda ishlatilgan manzillar",
- "allFilters": "Barcha filtrlar",
- "sort": "Saralash",
- "pickedForYou": "Siz uchun",
- "mostPopular": "Eng ommabop",
- "rating": "Reyting",
- "deliveryTime": "Yetkazib berish vaqti",
- "fromUberEats": "Uber Eats dan",
- "deals": "Aksiyalar",
- "bestOverall": "Eng yaxshisi",
- "priceRange": "Narx oralig‘i",
- "maxDeliveryFee": "Maks. yetkazish narxi",
- "dietary": "Parhez",
- "vegetarian": "Vegetarian",
- "vegan": "Vegan",
- "glutenFree": "Glutensiz",
- "halal": "Halol",
- "allergyFriendly": "Allergiyaga mos",
- "atLeast":"Kаmida",
- "apply": "Qo‘llash",
- "pickedForYouDefault": "Siz uchun tanlangan (standart)",
- "popular": "Eng ommabop",
- "topRated": "Yuqori reytingli",
- "fast": "Tezkor",
- "delivery": "Yetkazish",
- "featuredStores": "Mashhur do‘konlar",
- "fromUberEats": "{name} tomonidan",
- "@fromUberEats":{
- "placeholders": {
- "name": {
- "type": "String"
- }
- }
- },
- "opensAt": "Soat {time} dan ochiladi",
- "opensAt@placeholders": {
- "time": {}
- },
- "spendAndSave": "{spend} sarflang, {save} tejang",
- "spendAndSave@placeholders": {
- "spend": {},
- "save": {}
- },
- "cartsTitle": "Savatlar",
- "addItemsStartBasket": "Savatni boshlash uchun mahsulot qo‘shing",
- "basketHint": "Restorandan yoki do'kondan mahsulot qo‘shsangiz, savatingiz shu yerda paydo bo‘ladi.",
- "startShopping": "Xaridni boshlash",
- "orders": "Buyurtmalar",
- "recentSearches": "Yaqinda qidirilganlar",
- "cafe": "Kafe",
- "irish": "Irlandcha",
- "topCategories": "Eng ommabop toifalar",
- "breakfastAndBrunch": "Nonushta va bransh",
- "coffeeAndTea": "Qahva va choy",
- "chinese": "Xitoy taomlari",
- "indian": "Hind taomlari",
- "latestDeals": "Yangi chegirmalar",
- "restaurantRewards": "Restoran mukofotlari",
- "bestOverall": "Eng yaxshilari",
- "nationwideShipping": "Butun mamlakat bo‘ylab yetkazib berish",
- "mexican": "Meksika taomlari",
- "fastFood": "Tezkor ovqatlar",
- "healthy": "Sog‘lom ovqatlar",
- "pizza": "Pitsa",
- "sandwich": "Sendvich",
- "asian": "Osiyo taomlari",
- "bakery": "Qandolatxona",
- "categoriesShort": "Ovqat, xaridlar, ichimliklar va boshqalar.",
- "allCategories": "Barcha toifalar",
- "yourFavourites": "Sevimlilar",
- "restaurantRewards": "Restoran bonuslari",
- "wallet": "Hamyon",
- "sendAGift": "Sovg‘a yuborish",
- "businessPreferences": "Biznes sozlamalari",
- "businessSub": "Ishdagi ovqatlarni tezroq va osonroq qiling",
- "help": "Yordam",
- "promotions": "Aksiyalar",
- "uberPass": "Uber Pass",
- "uberPassSub": "1 oy bepul ulaning",
- "deliverWithUber": "Uber bilan yetkazib bering",
- "settings": "Sozlamalar",
- "home": "Bosh sahifa",
- "browse": "Kategoriya",
- "baskets": "Savatcha",
- "account": "Profil",
- "language": "Til",
- "changeLanguage": "Tilni o'zgartirish",
- "login": "Kirish",
- "phone_number": "Telefon raqami",
- "enter_phone_number": "Telefon raqamingizni kiriting",
- "password": "Parol",
- "enter_password": "Parolni kiriting",
- "forgot_password": "Parolni unutdingizmi",
- "continue_str": "Davom etish",
- "dont_have_account": "Hisobingiz yo‘qmi?",
- "sign_up": "Ro‘yxatdan o‘tish",
- "field_cannot_be_empty": "Bu maydon bo'sh bo'lishi mumkin emas",
- "password_too_short": "Parol 6 ta belgidan kam bo'lishi mumkin emas",
- "invalid_phone_format": "Noto'g'ri telefon raqam formati",
- "first_name": "Ism",
- "enter_first_name": "Ismingizni kiriting",
- "repeat_password": "Parolni takrorlang",
- "enter_repeat_password": "Parolni qayta kiriting",
- "already_has_account": "Akkountingiz bormi?",
- "unexpected_error": "Kutilmagan xatolik",
- "consent_message": "Davom etish orqali siz {appName} va uning hamkorlaridan siz kiritgan raqamga, shu jumladan avtomatik vositalar orqali, qo‘ng‘iroqlar yoki SMS xabarlar olishingizga rozilik bildirasiz.",
- "@consent_message": {
- "placeholders": {
- "appName": {
- "type": "String",
- "example": "Uber"
- }
- }
- },
- "otp_code_incomplete": "Kod yetarli emas. Iltimos, to‘liq kodni kiriting.",
- "passwords_do_not_match": "Parollar mos kelmadi.",
- "reset_password": "Parolni qayta tiklash",
- "new_password": "Yangi parol",
- "enter_otp_code": "{phoneNumber} raqamiga yuborilgan 5 xonali kodni kiriting",
- "@enter_otp_code":{
- "placeholders": {
- "phoneNumber": {
- "type": "String"
- }
- }
- },
- "resend_otp_after": "OTP kodni qayta yuborish mumkin bo‘ladi"
+ "field_cannot_be_empty": "Maydon bo‘sh bo‘lishi mumkin emas",
+ "invalid_phone_format": "Telefon raqami formati noto‘g‘ri",
+ "password_too_short": "Parol kamida 6 ta belgidan iborat bo‘lishi kerak",
+ "passwords_do_not_match": "Parollar mos emas",
+ "otp_code_incomplete": "OTP kodi to‘liq kiritilmagan",
+ "unexpected_error": "Kutilmagan xatolik yuz berdi. Iltimos, qayta urinib ko‘ring."
-
-
-
-
-
-
-
-
-
-
-}
+}
\ No newline at end of file
diff --git a/lib/core/constants/app_locale_keys.dart b/lib/core/constants/app_locale_keys.dart
index af53ea5..99acccd 100644
--- a/lib/core/constants/app_locale_keys.dart
+++ b/lib/core/constants/app_locale_keys.dart
@@ -4,7 +4,9 @@ abstract class AppLocaleKeys {
static const String browseSearchHistory = 'browse-search-history';
static const String token = 'token';
+ static const String fontBlack = "fontBlack";
static const String fontBold = "fontBold";
+ static const String fontSemiBold = "fontSemiBold";
static const String fontMedium = "fontMedium";
static const String fontRegular = "fontRegular";
static const String fontLight = "fontLight";
diff --git a/lib/core/constants/time_delay_cons.dart b/lib/core/constants/time_delay_cons.dart
index ba78c74..885e359 100644
--- a/lib/core/constants/time_delay_cons.dart
+++ b/lib/core/constants/time_delay_cons.dart
@@ -4,5 +4,6 @@ abstract class TimeDelayConst {
static const Duration durationMill800 = Duration(milliseconds: 800);
static const Duration durationMill3500 = Duration(milliseconds: 3500);
static const Duration duration1 = Duration(seconds: 1);
+ static const Duration duration2 = Duration(seconds: 2);
static const Duration duration3 = Duration(seconds: 3);
}
diff --git a/lib/core/di/injection_container.config.dart b/lib/core/di/injection_container.config.dart
index 70cbf67..8087c7b 100644
--- a/lib/core/di/injection_container.config.dart
+++ b/lib/core/di/injection_container.config.dart
@@ -13,42 +13,12 @@ import 'package:dio/dio.dart' as _i361;
import 'package:get_it/get_it.dart' as _i174;
import 'package:injectable/injectable.dart' as _i526;
-import '../../feature/auth/data/datasource/auth_datasource.dart' as _i246;
-import '../../feature/auth/data/repository/auth_repository_impl.dart' as _i648;
-import '../../feature/auth/domain/repository/auth_repository.dart' as _i884;
-import '../../feature/auth/domain/usecases/login_usecase.dart' as _i241;
-import '../../feature/auth/domain/usecases/register_usecase.dart' as _i607;
-import '../../feature/auth/domain/usecases/reset_password_usecase.dart'
- as _i694;
-import '../../feature/auth/domain/usecases/verify_otp_code_login_usecase.dart'
- as _i318;
-import '../../feature/auth/domain/usecases/verify_otp_code_register_usecase.dart'
- as _i406;
-import '../../feature/auth/domain/usecases/verify_phone_login_usecase.dart'
- as _i801;
-import '../../feature/auth/domain/usecases/verify_phone_register_usecase.dart'
- as _i664;
-import '../../feature/auth/presentation/blocs/login_bloc/login_bloc.dart'
- as _i1065;
-import '../../feature/auth/presentation/blocs/register_bloc/register_bloc.dart'
- as _i1050;
-import '../../feature/auth/presentation/blocs/reset_password_bloc/reset_password_bloc.dart'
- as _i97;
-import '../../feature/auth/presentation/blocs/verify_otp_bloc/verify_otp_bloc.dart'
- as _i323;
-import '../../feature/auth/presentation/blocs/verify_phone_bloc/verify_phone_bloc.dart'
- as _i224;
-import '../../feature/basket/presentation/blocs/basket_bloc.dart' as _i728;
-import '../../feature/browse/presentation/blocs/browse_bloc/browse_bloc.dart'
- as _i991;
import '../../feature/common/presentation/blocs/language_bloc/language_bloc.dart'
as _i942;
-import '../../feature/home/presentation/blocs/home_bloc/home_bloc.dart'
- as _i1007;
import '../../feature/main/presentation/blocs/main_bloc/main_bloc.dart'
as _i580;
-import '../../feature/on_boarding/presentation/blocs/splash_bloc/splash_bloc.dart'
- as _i311;
+import '../../feature/onboarding/presentation/blocs/splash_bloc/splash_bloc.dart'
+ as _i28;
import '../../food_delivery_client.dart' as _i321;
import '../network/dio_client.dart' as _i667;
import '../router/app_routes.dart' as _i152;
@@ -63,78 +33,20 @@ extension GetItInjectableX on _i174.GetIt {
}) {
final gh = _i526.GetItHelper(this, environment, environmentFilter);
final dioModule = _$DioModule();
- gh.factory<_i1007.HomeBloc>(() => _i1007.HomeBloc());
- gh.factory<_i728.BasketBloc>(() => _i728.BasketBloc());
- gh.factory<_i991.BrowseBloc>(() => _i991.BrowseBloc());
gh.factory<_i580.MainBloc>(() => _i580.MainBloc());
- gh.factory<_i311.SplashBloc>(() => _i311.SplashBloc());
gh.singleton<_i306.StorageService>(() => _i306.StorageService());
gh.singleton<_i152.AppRoutes>(() => _i152.AppRoutes());
gh.lazySingleton<_i667.DioClient>(() => _i667.DioClient());
gh.factory<_i942.LanguageBloc>(
() => _i942.LanguageBloc(gh<_i321.StorageService>()),
);
+ gh.factory<_i28.SplashBloc>(
+ () => _i28.SplashBloc(gh<_i321.StorageService>()),
+ );
gh.lazySingleton<_i361.Dio>(() => dioModule.dio(gh<_i667.DioClient>()));
gh.singleton<_i354.RequestHandlerService>(
() => _i354.RequestHandlerService(gh<_i361.Dio>()),
);
- gh.lazySingleton<_i246.AuthDatasource>(
- () => _i246.AuthDatasourceImpl(gh<_i354.RequestHandlerService>()),
- );
- gh.lazySingleton<_i884.AuthRepository>(
- () => _i648.AuthRepositoryImpl(
- gh<_i354.RequestHandlerService>(),
- gh<_i246.AuthDatasource>(),
- ),
- );
- gh.factory<_i607.RegisterUseCase>(
- () => _i607.RegisterUseCase(gh<_i884.AuthRepository>()),
- );
- gh.factory<_i241.LoginUseCase>(
- () => _i241.LoginUseCase(gh<_i884.AuthRepository>()),
- );
- gh.factory<_i694.ResetPasswordUseCase>(
- () => _i694.ResetPasswordUseCase(gh<_i884.AuthRepository>()),
- );
- gh.factory<_i318.VerifyOtpCodeForgotPasswordUseCase>(
- () =>
- _i318.VerifyOtpCodeForgotPasswordUseCase(gh<_i884.AuthRepository>()),
- );
- gh.factory<_i801.VerifyPhoneNumberLoginUseCase>(
- () => _i801.VerifyPhoneNumberLoginUseCase(gh<_i884.AuthRepository>()),
- );
- gh.factory<_i664.VerifyPhoneRegisterUseCase>(
- () => _i664.VerifyPhoneRegisterUseCase(gh<_i884.AuthRepository>()),
- );
- gh.factory<_i406.VerifyOtpCodeRegisterUseCase>(
- () => _i406.VerifyOtpCodeRegisterUseCase(gh<_i884.AuthRepository>()),
- );
- gh.factory<_i323.VerifyOtpBloc>(
- () => _i323.VerifyOtpBloc(
- gh<_i406.VerifyOtpCodeRegisterUseCase>(),
- gh<_i318.VerifyOtpCodeForgotPasswordUseCase>(),
- gh<_i664.VerifyPhoneRegisterUseCase>(),
- gh<_i801.VerifyPhoneNumberLoginUseCase>(),
- ),
- );
- gh.factory<_i224.VerifyPhoneBloc>(
- () => _i224.VerifyPhoneBloc(
- gh<_i801.VerifyPhoneNumberLoginUseCase>(),
- gh<_i664.VerifyPhoneRegisterUseCase>(),
- ),
- );
- gh.factory<_i1050.RegisterBloc>(
- () => _i1050.RegisterBloc(gh<_i607.RegisterUseCase>()),
- );
- gh.factory<_i97.ResetPasswordBloc>(
- () => _i97.ResetPasswordBloc(gh<_i694.ResetPasswordUseCase>()),
- );
- gh.factory<_i1065.LoginBloc>(
- () => _i1065.LoginBloc(
- gh<_i241.LoginUseCase>(),
- gh<_i321.StorageService>(),
- ),
- );
return this;
}
}
diff --git a/lib/core/extensions/build_context_extensions.dart b/lib/core/extensions/build_context_extensions.dart
index bd69877..e9ac99a 100644
--- a/lib/core/extensions/build_context_extensions.dart
+++ b/lib/core/extensions/build_context_extensions.dart
@@ -1,5 +1,7 @@
-import 'package:flutter/cupertino.dart';
-import 'package:food_delivery_client/core/l10n/app_localizations.dart';
+import 'package:food_delivery_client/core/theme/app_theme_textstyles.dart';
+import 'package:food_delivery_client/core/theme/theme_icons.dart';
+
+import '../../food_delivery_client.dart';
extension BuildContextExtensions on BuildContext {
MediaQueryData get mq => MediaQuery.of(this);
@@ -9,4 +11,11 @@ extension BuildContextExtensions on BuildContext {
double get h => mq.size.height;
AppLocalizations get loc => AppLocalizations.of(this)!;
+
+ ThemeData get theme => Theme.of(this);
+
+ AppThemeIcons get appThemeIcons => theme.extension()!;
+
+ AppThemeTextStyles get appThemeTextStyles =>
+ theme.extension()!;
}
diff --git a/lib/core/l10n/app_localizations.dart b/lib/core/l10n/app_localizations.dart
index 44f3850..aa18d46 100644
--- a/lib/core/l10n/app_localizations.dart
+++ b/lib/core/l10n/app_localizations.dart
@@ -100,809 +100,41 @@ abstract class AppLocalizations {
Locale('uz'),
];
- /// No description provided for @useYourTAxiAccount.
- ///
- /// In en, this message translates to:
- /// **'Use your uber account to get started'**
- String get useYourTAxiAccount;
-
- /// No description provided for @enterYourMobileNumber.
- ///
- /// In en, this message translates to:
- /// **'Enter your mobile number'**
- String get enterYourMobileNumber;
-
- /// No description provided for @mobileNumber.
- ///
- /// In en, this message translates to:
- /// **'Mobile number'**
- String get mobileNumber;
-
- /// No description provided for @next.
- ///
- /// In en, this message translates to:
- /// **'Next'**
- String get next;
-
- /// No description provided for @contestToGetCallAndSms.
- ///
- /// In en, this message translates to:
- /// **'By proceeding, you consent to get calls, Whatsapp or SMS messages, including by automated means, from uber and its affiliates to the number provided.'**
- String get contestToGetCallAndSms;
-
- /// No description provided for @continueWithGoogle.
- ///
- /// In en, this message translates to:
- /// **'Continue with google'**
- String get continueWithGoogle;
-
- /// No description provided for @or.
- ///
- /// In en, this message translates to:
- /// **'or'**
- String get or;
-
- /// No description provided for @welcomeBack.
- ///
- /// In en, this message translates to:
- /// **'Welcome back, John'**
- String get welcomeBack;
-
- /// No description provided for @pleaseEnterYourPassword.
- ///
- /// In en, this message translates to:
- /// **'Please enter your password'**
- String get pleaseEnterYourPassword;
-
- /// No description provided for @iHaveForgotPassword.
- ///
- /// In en, this message translates to:
- /// **'I\'ve forgotten my password'**
- String get iHaveForgotPassword;
-
- /// No description provided for @iCantSignIn.
- ///
- /// In en, this message translates to:
- /// **'I cant sign in'**
- String get iCantSignIn;
-
- /// No description provided for @enter4DigitCodeSentYou.
- ///
- /// In en, this message translates to:
- /// **'Enter the 4-digit code sent to you at {phone}'**
- String enter4DigitCodeSentYou(String phone);
-
- /// No description provided for @iHavenRecievedCode.
- ///
- /// In en, this message translates to:
- /// **'I haven’t recieved a code (\${time})'**
- String iHavenRecievedCode(String time);
-
- /// No description provided for @delivery.
- ///
- /// In en, this message translates to:
- /// **'Delivery'**
- String get delivery;
-
- /// No description provided for @pickUp.
- ///
- /// In en, this message translates to:
- /// **'Pickup'**
- String get pickUp;
-
- /// No description provided for @dineIn.
- ///
- /// In en, this message translates to:
- /// **'Dine-in'**
- String get dineIn;
-
- /// No description provided for @allCategories.
- ///
- /// In en, this message translates to:
- /// **'All categories'**
- String get allCategories;
-
- /// No description provided for @convenience.
- ///
- /// In en, this message translates to:
- /// **'Convenience'**
- String get convenience;
-
- /// No description provided for @alcohol.
- ///
- /// In en, this message translates to:
- /// **'Alcohol'**
- String get alcohol;
-
- /// No description provided for @petSupplies.
- ///
- /// In en, this message translates to:
- /// **'Pet Supplies'**
- String get petSupplies;
-
- /// No description provided for @flowers.
- ///
- /// In en, this message translates to:
- /// **'Flowers'**
- String get flowers;
-
- /// No description provided for @grocery.
- ///
- /// In en, this message translates to:
- /// **'Grocery'**
- String get grocery;
-
- /// No description provided for @american.
- ///
- /// In en, this message translates to:
- /// **'American'**
- String get american;
-
- /// No description provided for @speciality.
- ///
- /// In en, this message translates to:
- /// **'Speciality'**
- String get speciality;
-
- /// No description provided for @takeout.
- ///
- /// In en, this message translates to:
- /// **'Takeout'**
- String get takeout;
-
- /// No description provided for @asian.
- ///
- /// In en, this message translates to:
- /// **'Asian'**
- String get asian;
-
- /// No description provided for @iceCream.
- ///
- /// In en, this message translates to:
- /// **'Ice Cream'**
- String get iceCream;
-
- /// No description provided for @halal.
- ///
- /// In en, this message translates to:
- /// **'Halal'**
- String get halal;
-
- /// No description provided for @retails.
- ///
- /// In en, this message translates to:
- /// **'Retails'**
- String get retails;
-
- /// No description provided for @caribbean.
- ///
- /// In en, this message translates to:
- /// **'Caribbean'**
- String get caribbean;
-
- /// No description provided for @indian.
- ///
- /// In en, this message translates to:
- /// **'Indian'**
- String get indian;
-
- /// No description provided for @french.
- ///
- /// In en, this message translates to:
- /// **'French'**
- String get french;
-
- /// No description provided for @fastFoods.
- ///
- /// In en, this message translates to:
- /// **'Fast Foods'**
- String get fastFoods;
-
- /// No description provided for @burger.
- ///
- /// In en, this message translates to:
- /// **'Burger'**
- String get burger;
-
- /// No description provided for @ride.
- ///
- /// In en, this message translates to:
- /// **'Ride'**
- String get ride;
-
- /// No description provided for @chinese.
- ///
- /// In en, this message translates to:
- /// **'Chinese'**
- String get chinese;
-
- /// No description provided for @dessert.
- ///
- /// In en, this message translates to:
- /// **'Dessert'**
- String get dessert;
-
- /// No description provided for @more.
- ///
- /// In en, this message translates to:
- /// **'More'**
- String get more;
-
- /// No description provided for @orderDetails.
- ///
- /// In en, this message translates to:
- /// **'Order details'**
- String get orderDetails;
-
- /// No description provided for @deliverNow.
- ///
- /// In en, this message translates to:
- /// **'Deliver now'**
- String get deliverNow;
-
- /// No description provided for @schedule.
- ///
- /// In en, this message translates to:
- /// **'Schedule'**
- String get schedule;
-
- /// No description provided for @enterNewAddress.
- ///
- /// In en, this message translates to:
- /// **'Enter a new address'**
- String get enterNewAddress;
-
- /// No description provided for @nearby.
- ///
- /// In en, this message translates to:
- /// **'Nearby'**
- String get nearby;
-
- /// No description provided for @currentLocation.
- ///
- /// In en, this message translates to:
- /// **'Current location'**
- String get currentLocation;
-
- /// No description provided for @enable.
- ///
- /// In en, this message translates to:
- /// **'Enable'**
- String get enable;
-
- /// No description provided for @recentLocations.
- ///
- /// In en, this message translates to:
- /// **'Recent locations'**
- String get recentLocations;
-
- /// No description provided for @allFilters.
- ///
- /// In en, this message translates to:
- /// **'All filters'**
- String get allFilters;
-
- /// No description provided for @sort.
- ///
- /// In en, this message translates to:
- /// **'Sort'**
- String get sort;
-
- /// No description provided for @pickedForYou.
- ///
- /// In en, this message translates to:
- /// **'Picked for you (default)'**
- String get pickedForYou;
-
- /// No description provided for @mostPopular.
- ///
- /// In en, this message translates to:
- /// **'Most popular'**
- String get mostPopular;
-
- /// No description provided for @rating.
- ///
- /// In en, this message translates to:
- /// **'Rating'**
- String get rating;
-
- /// No description provided for @deliveryTime.
- ///
- /// In en, this message translates to:
- /// **'Delivery time'**
- String get deliveryTime;
-
- /// No description provided for @fromUberEats.
- ///
- /// In en, this message translates to:
- /// **'From {name}'**
- String fromUberEats(String name);
-
- /// No description provided for @deals.
- ///
- /// In en, this message translates to:
- /// **'Deals'**
- String get deals;
-
- /// No description provided for @bestOverall.
- ///
- /// In en, this message translates to:
- /// **'Best Overall'**
- String get bestOverall;
-
- /// No description provided for @priceRange.
- ///
- /// In en, this message translates to:
- /// **'Price range'**
- String get priceRange;
-
- /// No description provided for @maxDeliveryFee.
- ///
- /// In en, this message translates to:
- /// **'Max. Delivery Fee'**
- String get maxDeliveryFee;
-
- /// No description provided for @dietary.
- ///
- /// In en, this message translates to:
- /// **'Dietary'**
- String get dietary;
-
- /// No description provided for @vegetarian.
- ///
- /// In en, this message translates to:
- /// **'Vegetarian'**
- String get vegetarian;
-
- /// No description provided for @vegan.
- ///
- /// In en, this message translates to:
- /// **'Vegan'**
- String get vegan;
-
- /// No description provided for @glutenFree.
- ///
- /// In en, this message translates to:
- /// **'Gluten-free'**
- String get glutenFree;
-
- /// No description provided for @allergyFriendly.
- ///
- /// In en, this message translates to:
- /// **'Allergy friendly'**
- String get allergyFriendly;
-
- /// No description provided for @atLeast.
- ///
- /// In en, this message translates to:
- /// **'At least'**
- String get atLeast;
-
- /// No description provided for @apply.
- ///
- /// In en, this message translates to:
- /// **'Apply'**
- String get apply;
-
- /// No description provided for @pickedForYouDefault.
- ///
- /// In en, this message translates to:
- /// **'Picked for you (default)'**
- String get pickedForYouDefault;
-
- /// No description provided for @popular.
- ///
- /// In en, this message translates to:
- /// **'Most popular'**
- String get popular;
-
- /// No description provided for @topRated.
- ///
- /// In en, this message translates to:
- /// **'Top rated'**
- String get topRated;
-
- /// No description provided for @fast.
- ///
- /// In en, this message translates to:
- /// **'Fast'**
- String get fast;
-
- /// No description provided for @featuredStores.
- ///
- /// In en, this message translates to:
- /// **'Featured stores'**
- String get featuredStores;
-
- /// No description provided for @opensAt.
- ///
- /// In en, this message translates to:
- /// **'Opens at {time}'**
- String opensAt(String time);
-
- /// No description provided for @spendAndSave.
- ///
- /// In en, this message translates to:
- /// **'Spend {spend}, save {save}'**
- String spendAndSave(String spend, String save);
-
- /// No description provided for @cartsTitle.
- ///
- /// In en, this message translates to:
- /// **'Carts'**
- String get cartsTitle;
-
- /// No description provided for @addItemsStartBasket.
- ///
- /// In en, this message translates to:
- /// **'Add items to start a basket'**
- String get addItemsStartBasket;
-
- /// No description provided for @basketHint.
- ///
- /// In en, this message translates to:
- /// **'Once you add items from a restaurant or store, your basket will appear here.'**
- String get basketHint;
-
- /// No description provided for @startShopping.
- ///
- /// In en, this message translates to:
- /// **'Start Shopping'**
- String get startShopping;
-
- /// No description provided for @orders.
- ///
- /// In en, this message translates to:
- /// **'Orders'**
- String get orders;
-
- /// No description provided for @recentSearches.
- ///
- /// In en, this message translates to:
- /// **'Recent searches'**
- String get recentSearches;
-
- /// No description provided for @cafe.
- ///
- /// In en, this message translates to:
- /// **'Cafe'**
- String get cafe;
-
- /// No description provided for @irish.
- ///
- /// In en, this message translates to:
- /// **'Irish'**
- String get irish;
-
- /// No description provided for @topCategories.
- ///
- /// In en, this message translates to:
- /// **'Top Categories'**
- String get topCategories;
-
- /// No description provided for @breakfastAndBrunch.
- ///
- /// In en, this message translates to:
- /// **'Breakfast and Brunch'**
- String get breakfastAndBrunch;
-
- /// No description provided for @coffeeAndTea.
- ///
- /// In en, this message translates to:
- /// **'Coffee and Tea'**
- String get coffeeAndTea;
-
- /// No description provided for @latestDeals.
- ///
- /// In en, this message translates to:
- /// **'Latest Deals'**
- String get latestDeals;
-
- /// No description provided for @restaurantRewards.
- ///
- /// In en, this message translates to:
- /// **'Restaurant Rewards'**
- String get restaurantRewards;
-
- /// No description provided for @nationwideShipping.
- ///
- /// In en, this message translates to:
- /// **'Nationwide Shipping'**
- String get nationwideShipping;
-
- /// No description provided for @mexican.
- ///
- /// In en, this message translates to:
- /// **'Mexican'**
- String get mexican;
-
- /// No description provided for @fastFood.
- ///
- /// In en, this message translates to:
- /// **'Fast Food'**
- String get fastFood;
-
- /// No description provided for @healthy.
- ///
- /// In en, this message translates to:
- /// **'Healthy'**
- String get healthy;
-
- /// No description provided for @pizza.
- ///
- /// In en, this message translates to:
- /// **'Pizza'**
- String get pizza;
-
- /// No description provided for @sandwich.
- ///
- /// In en, this message translates to:
- /// **'Sandwich'**
- String get sandwich;
-
- /// No description provided for @bakery.
- ///
- /// In en, this message translates to:
- /// **'Bakery'**
- String get bakery;
-
- /// No description provided for @categoriesShort.
- ///
- /// In en, this message translates to:
- /// **'Food, shopping, drinks, etc.'**
- String get categoriesShort;
-
- /// No description provided for @yourFavourites.
- ///
- /// In en, this message translates to:
- /// **'Your favourites'**
- String get yourFavourites;
-
- /// No description provided for @wallet.
- ///
- /// In en, this message translates to:
- /// **'Wallet'**
- String get wallet;
-
- /// No description provided for @sendAGift.
- ///
- /// In en, this message translates to:
- /// **'Send a gift'**
- String get sendAGift;
-
- /// No description provided for @businessPreferences.
- ///
- /// In en, this message translates to:
- /// **'Business preferences'**
- String get businessPreferences;
-
- /// No description provided for @businessSub.
- ///
- /// In en, this message translates to:
- /// **'Make work meals quicker and easier'**
- String get businessSub;
-
- /// No description provided for @help.
- ///
- /// In en, this message translates to:
- /// **'Help'**
- String get help;
-
- /// No description provided for @promotions.
- ///
- /// In en, this message translates to:
- /// **'Promotions'**
- String get promotions;
-
- /// No description provided for @uberPass.
- ///
- /// In en, this message translates to:
- /// **'Uber Pass'**
- String get uberPass;
-
- /// No description provided for @uberPassSub.
- ///
- /// In en, this message translates to:
- /// **'Join free for 1 month'**
- String get uberPassSub;
-
- /// No description provided for @deliverWithUber.
- ///
- /// In en, this message translates to:
- /// **'Deliver with Uber'**
- String get deliverWithUber;
-
- /// No description provided for @settings.
- ///
- /// In en, this message translates to:
- /// **'Settings'**
- String get settings;
-
- /// No description provided for @home.
- ///
- /// In en, this message translates to:
- /// **'Home'**
- String get home;
-
- /// No description provided for @browse.
- ///
- /// In en, this message translates to:
- /// **'Browse'**
- String get browse;
-
- /// No description provided for @baskets.
- ///
- /// In en, this message translates to:
- /// **'Baskets'**
- String get baskets;
-
- /// No description provided for @account.
- ///
- /// In en, this message translates to:
- /// **'Account'**
- String get account;
-
- /// No description provided for @changeLanguage.
- ///
- /// In en, this message translates to:
- /// **'Change language'**
- String get changeLanguage;
-
- /// No description provided for @language.
- ///
- /// In en, this message translates to:
- /// **'Language'**
- String get language;
-
- /// No description provided for @login.
- ///
- /// In en, this message translates to:
- /// **'Login'**
- String get login;
-
- /// No description provided for @phone_number.
- ///
- /// In en, this message translates to:
- /// **'Phone number'**
- String get phone_number;
-
- /// No description provided for @enter_phone_number.
- ///
- /// In en, this message translates to:
- /// **'Enter phone number'**
- String get enter_phone_number;
-
- /// No description provided for @password.
- ///
- /// In en, this message translates to:
- /// **'Password'**
- String get password;
-
- /// No description provided for @enter_password.
- ///
- /// In en, this message translates to:
- /// **'Enter password'**
- String get enter_password;
-
- /// No description provided for @forgot_password.
- ///
- /// In en, this message translates to:
- /// **'Forgot password'**
- String get forgot_password;
-
- /// No description provided for @continue_str.
- ///
- /// In en, this message translates to:
- /// **'Continue'**
- String get continue_str;
-
- /// No description provided for @dont_have_account.
- ///
- /// In en, this message translates to:
- /// **'Don\'t have an account?'**
- String get dont_have_account;
-
- /// No description provided for @sign_up.
- ///
- /// In en, this message translates to:
- /// **'SignUp'**
- String get sign_up;
-
/// No description provided for @field_cannot_be_empty.
///
/// In en, this message translates to:
/// **'This field cannot be empty'**
String get field_cannot_be_empty;
- /// No description provided for @password_too_short.
- ///
- /// In en, this message translates to:
- /// **'Password must be at least 6 characters long'**
- String get password_too_short;
-
/// No description provided for @invalid_phone_format.
///
/// In en, this message translates to:
/// **'Invalid phone number format'**
String get invalid_phone_format;
- /// No description provided for @first_name.
+ /// No description provided for @password_too_short.
///
/// In en, this message translates to:
- /// **'First name'**
- String get first_name;
-
- /// No description provided for @enter_first_name.
- ///
- /// In en, this message translates to:
- /// **'Enter first name'**
- String get enter_first_name;
-
- /// No description provided for @repeat_password.
- ///
- /// In en, this message translates to:
- /// **'Repeat password'**
- String get repeat_password;
-
- /// No description provided for @enter_repeat_password.
- ///
- /// In en, this message translates to:
- /// **'Enter repeat password'**
- String get enter_repeat_password;
-
- /// No description provided for @already_has_account.
- ///
- /// In en, this message translates to:
- /// **'Already have an account?'**
- String get already_has_account;
-
- /// No description provided for @unexpected_error.
- ///
- /// In en, this message translates to:
- /// **'Unexpected error'**
- String get unexpected_error;
-
- /// No description provided for @consent_message.
- ///
- /// In en, this message translates to:
- /// **'By proceeding, you consent to get calls or SMS messages, including by automated means, from {appName} and its affiliates to the number provided.'**
- String consent_message(String appName);
-
- /// No description provided for @otp_code_incomplete.
- ///
- /// In en, this message translates to:
- /// **'Code is incomplete. Please enter the full code.'**
- String get otp_code_incomplete;
+ /// **'Password must be at least 6 characters long'**
+ String get password_too_short;
/// No description provided for @passwords_do_not_match.
///
/// In en, this message translates to:
- /// **'Passwords do not match.'**
+ /// **'Passwords do not match'**
String get passwords_do_not_match;
- /// No description provided for @reset_password.
+ /// No description provided for @otp_code_incomplete.
///
/// In en, this message translates to:
- /// **'Reset password'**
- String get reset_password;
+ /// **'OTP code is incomplete'**
+ String get otp_code_incomplete;
- /// No description provided for @new_password.
+ /// No description provided for @unexpected_error.
///
/// In en, this message translates to:
- /// **'New password'**
- String get new_password;
-
- /// No description provided for @enter_otp_code.
- ///
- /// In en, this message translates to:
- /// **'Enter the 5-digit code sent to you at {phoneNumber}'**
- String enter_otp_code(String phoneNumber);
-
- /// No description provided for @resend_otp_after.
- ///
- /// In en, this message translates to:
- /// **'You can resend OTP after'**
- String get resend_otp_after;
+ /// **'An unexpected error occurred. Please try again.'**
+ String get unexpected_error;
}
class _AppLocalizationsDelegate
diff --git a/lib/core/l10n/app_localizations_en.dart b/lib/core/l10n/app_localizations_en.dart
index 44c5a4e..b72badb 100644
--- a/lib/core/l10n/app_localizations_en.dart
+++ b/lib/core/l10n/app_localizations_en.dart
@@ -8,423 +8,23 @@ import 'app_localizations.dart';
class AppLocalizationsEn extends AppLocalizations {
AppLocalizationsEn([String locale = 'en']) : super(locale);
- @override
- String get useYourTAxiAccount => 'Use your uber account to get started';
-
- @override
- String get enterYourMobileNumber => 'Enter your mobile number';
-
- @override
- String get mobileNumber => 'Mobile number';
-
- @override
- String get next => 'Next';
-
- @override
- String get contestToGetCallAndSms =>
- 'By proceeding, you consent to get calls, Whatsapp or SMS messages, including by automated means, from uber and its affiliates to the number provided.';
-
- @override
- String get continueWithGoogle => 'Continue with google';
-
- @override
- String get or => 'or';
-
- @override
- String get welcomeBack => 'Welcome back, John';
-
- @override
- String get pleaseEnterYourPassword => 'Please enter your password';
-
- @override
- String get iHaveForgotPassword => 'I\'ve forgotten my password';
-
- @override
- String get iCantSignIn => 'I cant sign in';
-
- @override
- String enter4DigitCodeSentYou(String phone) {
- return 'Enter the 4-digit code sent to you at $phone';
- }
-
- @override
- String iHavenRecievedCode(String time) {
- return 'I haven’t recieved a code (\$$time)';
- }
-
- @override
- String get delivery => 'Delivery';
-
- @override
- String get pickUp => 'Pickup';
-
- @override
- String get dineIn => 'Dine-in';
-
- @override
- String get allCategories => 'All categories';
-
- @override
- String get convenience => 'Convenience';
-
- @override
- String get alcohol => 'Alcohol';
-
- @override
- String get petSupplies => 'Pet Supplies';
-
- @override
- String get flowers => 'Flowers';
-
- @override
- String get grocery => 'Grocery';
-
- @override
- String get american => 'American';
-
- @override
- String get speciality => 'Speciality';
-
- @override
- String get takeout => 'Takeout';
-
- @override
- String get asian => 'Asian';
-
- @override
- String get iceCream => 'Ice Cream';
-
- @override
- String get halal => 'Halal';
-
- @override
- String get retails => 'Retails';
-
- @override
- String get caribbean => 'Caribbean';
-
- @override
- String get indian => 'Indian';
-
- @override
- String get french => 'French';
-
- @override
- String get fastFoods => 'Fast Foods';
-
- @override
- String get burger => 'Burger';
-
- @override
- String get ride => 'Ride';
-
- @override
- String get chinese => 'Chinese';
-
- @override
- String get dessert => 'Dessert';
-
- @override
- String get more => 'More';
-
- @override
- String get orderDetails => 'Order details';
-
- @override
- String get deliverNow => 'Deliver now';
-
- @override
- String get schedule => 'Schedule';
-
- @override
- String get enterNewAddress => 'Enter a new address';
-
- @override
- String get nearby => 'Nearby';
-
- @override
- String get currentLocation => 'Current location';
-
- @override
- String get enable => 'Enable';
-
- @override
- String get recentLocations => 'Recent locations';
-
- @override
- String get allFilters => 'All filters';
-
- @override
- String get sort => 'Sort';
-
- @override
- String get pickedForYou => 'Picked for you (default)';
-
- @override
- String get mostPopular => 'Most popular';
-
- @override
- String get rating => 'Rating';
-
- @override
- String get deliveryTime => 'Delivery time';
-
- @override
- String fromUberEats(String name) {
- return 'From $name';
- }
-
- @override
- String get deals => 'Deals';
-
- @override
- String get bestOverall => 'Best Overall';
-
- @override
- String get priceRange => 'Price range';
-
- @override
- String get maxDeliveryFee => 'Max. Delivery Fee';
-
- @override
- String get dietary => 'Dietary';
-
- @override
- String get vegetarian => 'Vegetarian';
-
- @override
- String get vegan => 'Vegan';
-
- @override
- String get glutenFree => 'Gluten-free';
-
- @override
- String get allergyFriendly => 'Allergy friendly';
-
- @override
- String get atLeast => 'At least';
-
- @override
- String get apply => 'Apply';
-
- @override
- String get pickedForYouDefault => 'Picked for you (default)';
-
- @override
- String get popular => 'Most popular';
-
- @override
- String get topRated => 'Top rated';
-
- @override
- String get fast => 'Fast';
-
- @override
- String get featuredStores => 'Featured stores';
-
- @override
- String opensAt(String time) {
- return 'Opens at $time';
- }
-
- @override
- String spendAndSave(String spend, String save) {
- return 'Spend $spend, save $save';
- }
-
- @override
- String get cartsTitle => 'Carts';
-
- @override
- String get addItemsStartBasket => 'Add items to start a basket';
-
- @override
- String get basketHint =>
- 'Once you add items from a restaurant or store, your basket will appear here.';
-
- @override
- String get startShopping => 'Start Shopping';
-
- @override
- String get orders => 'Orders';
-
- @override
- String get recentSearches => 'Recent searches';
-
- @override
- String get cafe => 'Cafe';
-
- @override
- String get irish => 'Irish';
-
- @override
- String get topCategories => 'Top Categories';
-
- @override
- String get breakfastAndBrunch => 'Breakfast and Brunch';
-
- @override
- String get coffeeAndTea => 'Coffee and Tea';
-
- @override
- String get latestDeals => 'Latest Deals';
-
- @override
- String get restaurantRewards => 'Restaurant Rewards';
-
- @override
- String get nationwideShipping => 'Nationwide Shipping';
-
- @override
- String get mexican => 'Mexican';
-
- @override
- String get fastFood => 'Fast Food';
-
- @override
- String get healthy => 'Healthy';
-
- @override
- String get pizza => 'Pizza';
-
- @override
- String get sandwich => 'Sandwich';
-
- @override
- String get bakery => 'Bakery';
-
- @override
- String get categoriesShort => 'Food, shopping, drinks, etc.';
-
- @override
- String get yourFavourites => 'Your favourites';
-
- @override
- String get wallet => 'Wallet';
-
- @override
- String get sendAGift => 'Send a gift';
-
- @override
- String get businessPreferences => 'Business preferences';
-
- @override
- String get businessSub => 'Make work meals quicker and easier';
-
- @override
- String get help => 'Help';
-
- @override
- String get promotions => 'Promotions';
-
- @override
- String get uberPass => 'Uber Pass';
-
- @override
- String get uberPassSub => 'Join free for 1 month';
-
- @override
- String get deliverWithUber => 'Deliver with Uber';
-
- @override
- String get settings => 'Settings';
-
- @override
- String get home => 'Home';
-
- @override
- String get browse => 'Browse';
-
- @override
- String get baskets => 'Baskets';
-
- @override
- String get account => 'Account';
-
- @override
- String get changeLanguage => 'Change language';
-
- @override
- String get language => 'Language';
-
- @override
- String get login => 'Login';
-
- @override
- String get phone_number => 'Phone number';
-
- @override
- String get enter_phone_number => 'Enter phone number';
-
- @override
- String get password => 'Password';
-
- @override
- String get enter_password => 'Enter password';
-
- @override
- String get forgot_password => 'Forgot password';
-
- @override
- String get continue_str => 'Continue';
-
- @override
- String get dont_have_account => 'Don\'t have an account?';
-
- @override
- String get sign_up => 'SignUp';
-
@override
String get field_cannot_be_empty => 'This field cannot be empty';
+ @override
+ String get invalid_phone_format => 'Invalid phone number format';
+
@override
String get password_too_short =>
'Password must be at least 6 characters long';
@override
- String get invalid_phone_format => 'Invalid phone number format';
+ String get passwords_do_not_match => 'Passwords do not match';
@override
- String get first_name => 'First name';
+ String get otp_code_incomplete => 'OTP code is incomplete';
@override
- String get enter_first_name => 'Enter first name';
-
- @override
- String get repeat_password => 'Repeat password';
-
- @override
- String get enter_repeat_password => 'Enter repeat password';
-
- @override
- String get already_has_account => 'Already have an account?';
-
- @override
- String get unexpected_error => 'Unexpected error';
-
- @override
- String consent_message(String appName) {
- return 'By proceeding, you consent to get calls or SMS messages, including by automated means, from $appName and its affiliates to the number provided.';
- }
-
- @override
- String get otp_code_incomplete =>
- 'Code is incomplete. Please enter the full code.';
-
- @override
- String get passwords_do_not_match => 'Passwords do not match.';
-
- @override
- String get reset_password => 'Reset password';
-
- @override
- String get new_password => 'New password';
-
- @override
- String enter_otp_code(String phoneNumber) {
- return 'Enter the 5-digit code sent to you at $phoneNumber';
- }
-
- @override
- String get resend_otp_after => 'You can resend OTP after';
+ String get unexpected_error =>
+ 'An unexpected error occurred. Please try again.';
}
diff --git a/lib/core/l10n/app_localizations_ru.dart b/lib/core/l10n/app_localizations_ru.dart
index 154a850..6d92eb1 100644
--- a/lib/core/l10n/app_localizations_ru.dart
+++ b/lib/core/l10n/app_localizations_ru.dart
@@ -9,422 +9,22 @@ class AppLocalizationsRu extends AppLocalizations {
AppLocalizationsRu([String locale = 'ru']) : super(locale);
@override
- String get useYourTAxiAccount =>
- 'Используйте свой аккаунт Uber, чтобы начать';
-
- @override
- String get enterYourMobileNumber => 'Введите свой номер телефона';
-
- @override
- String get mobileNumber => 'Номер телефона';
-
- @override
- String get next => 'Далее';
-
- @override
- String get contestToGetCallAndSms =>
- 'Продолжая, вы соглашаетесь получать звонки, сообщения WhatsApp или SMS, включая автоматические, от Uber и его партнеров на указанный номер.';
-
- @override
- String get continueWithGoogle => 'Продолжить через Google';
-
- @override
- String get or => 'или';
-
- @override
- String get welcomeBack => 'С возвращением, null';
-
- @override
- String get pleaseEnterYourPassword => 'Пожалуйста, введите свой пароль';
-
- @override
- String get iHaveForgotPassword => 'Я забыл пароль';
-
- @override
- String get iCantSignIn => 'Не могу войти в систему';
-
- @override
- String enter4DigitCodeSentYou(String phone) {
- return 'Введите 4-значный код, отправленный на номер $phone';
- }
-
- @override
- String iHavenRecievedCode(String time) {
- return 'Я не получил код (\$$time)';
- }
-
- @override
- String get delivery => 'Доставка';
-
- @override
- String get pickUp => 'Самовывоз';
-
- @override
- String get dineIn => 'На месте';
-
- @override
- String get allCategories => 'Все категории';
-
- @override
- String get convenience => 'Магазин';
-
- @override
- String get alcohol => 'Алкоголь';
-
- @override
- String get petSupplies => 'Для питомцев';
-
- @override
- String get flowers => 'Цветы';
-
- @override
- String get grocery => 'Продукты';
-
- @override
- String get american => 'Американская';
-
- @override
- String get speciality => 'Особенная';
-
- @override
- String get takeout => 'На вынос';
-
- @override
- String get asian => 'Азиатская кухня';
-
- @override
- String get iceCream => 'Мороженое';
-
- @override
- String get halal => 'Халяль';
-
- @override
- String get retails => 'Розница';
-
- @override
- String get caribbean => 'Карибская';
-
- @override
- String get indian => 'Индийская кухня';
-
- @override
- String get french => 'Французская';
-
- @override
- String get fastFoods => 'Фастфуд';
-
- @override
- String get burger => 'Бургер';
-
- @override
- String get ride => 'Поездка';
-
- @override
- String get chinese => 'Китайская кухня';
-
- @override
- String get dessert => 'Десерт';
-
- @override
- String get more => 'Ещё';
-
- @override
- String get orderDetails => 'Детали заказа';
-
- @override
- String get deliverNow => 'Доставить сейчас';
-
- @override
- String get schedule => 'Запланировать';
-
- @override
- String get enterNewAddress => 'Введите новый адрес';
-
- @override
- String get nearby => 'Рядом';
-
- @override
- String get currentLocation => 'Текущее местоположение';
-
- @override
- String get enable => 'Включить';
-
- @override
- String get recentLocations => 'Недавние адреса';
-
- @override
- String get allFilters => 'Все фильтры';
-
- @override
- String get sort => 'Сортировка';
-
- @override
- String get pickedForYou => 'Подобрано для вас (по умолчанию)';
-
- @override
- String get mostPopular => 'Самые популярные';
-
- @override
- String get rating => 'Рейтинг';
-
- @override
- String get deliveryTime => 'Время доставки';
-
- @override
- String fromUberEats(String name) {
- return 'От $name';
- }
-
- @override
- String get deals => 'Скидки';
-
- @override
- String get bestOverall => 'Лучшие варианты';
-
- @override
- String get priceRange => 'Диапазон цен';
-
- @override
- String get maxDeliveryFee => 'Макс. стоимость доставки';
-
- @override
- String get dietary => 'Диета';
-
- @override
- String get vegetarian => 'Вегетарианское';
-
- @override
- String get vegan => 'Веганское';
-
- @override
- String get glutenFree => 'Без глютена';
-
- @override
- String get allergyFriendly => 'Без аллергенов';
-
- @override
- String get atLeast => 'Kак минимум';
-
- @override
- String get apply => 'Применить';
-
- @override
- String get pickedForYouDefault => 'Выбрано для вас (по умолчанию)';
-
- @override
- String get popular => 'Самые популярные';
-
- @override
- String get topRated => 'Высокий рейтинг';
-
- @override
- String get fast => 'Быстро';
-
- @override
- String get featuredStores => 'Популярные магазины';
-
- @override
- String opensAt(String time) {
- return 'Открывается в $time';
- }
-
- @override
- String spendAndSave(String spend, String save) {
- return 'Потратьте $spend, сэкономьте $save';
- }
-
- @override
- String get cartsTitle => 'Корзины';
-
- @override
- String get addItemsStartBasket => 'Добавьте товары, чтобы создать корзину';
-
- @override
- String get basketHint =>
- 'Когда вы добавите товары из ресторана или магазина, ваша корзина появится здесь.';
-
- @override
- String get startShopping => 'Начать покупки';
-
- @override
- String get orders => 'Заказы';
-
- @override
- String get recentSearches => 'Недавние запросы';
-
- @override
- String get cafe => 'Кафе';
-
- @override
- String get irish => 'Ирландская кухня';
-
- @override
- String get topCategories => 'Популярные категории';
-
- @override
- String get breakfastAndBrunch => 'Завтрак и бранч';
-
- @override
- String get coffeeAndTea => 'Кофе и чай';
-
- @override
- String get latestDeals => 'Новые предложения';
-
- @override
- String get restaurantRewards => 'Бонусы ресторанов';
-
- @override
- String get nationwideShipping => 'Доставка по всей стране';
-
- @override
- String get mexican => 'Мексиканская кухня';
-
- @override
- String get fastFood => 'Фастфуд';
-
- @override
- String get healthy => 'Здоровая еда';
-
- @override
- String get pizza => 'Пицца';
-
- @override
- String get sandwich => 'Сэндвич';
-
- @override
- String get bakery => 'Пекарня';
-
- @override
- String get categoriesShort => 'Еда, покупки, напитки и т.д.';
-
- @override
- String get yourFavourites => 'Избранное';
-
- @override
- String get wallet => 'Кошелёк';
-
- @override
- String get sendAGift => 'Отправить подарок';
-
- @override
- String get businessPreferences => 'Рабочие предпочтения';
-
- @override
- String get businessSub => 'Сделайте рабочие обеды быстрее и проще';
-
- @override
- String get help => 'Помощь';
-
- @override
- String get promotions => 'Акции';
-
- @override
- String get uberPass => 'Uber Pass';
-
- @override
- String get uberPassSub => 'Присоединяйтесь бесплатно на 1 месяц';
-
- @override
- String get deliverWithUber => 'Доставляйте с Uber';
-
- @override
- String get settings => 'Настройки';
-
- @override
- String get home => 'Главная';
-
- @override
- String get browse => 'Категории';
-
- @override
- String get baskets => 'Корзина';
-
- @override
- String get account => 'Аккаунт';
-
- @override
- String get changeLanguage => 'Сменить язык';
-
- @override
- String get language => 'Язык';
-
- @override
- String get login => 'Вход';
-
- @override
- String get phone_number => 'Номер телефона';
-
- @override
- String get enter_phone_number => 'Введите номер телефона';
-
- @override
- String get password => 'Пароль';
-
- @override
- String get enter_password => 'Введите пароль';
-
- @override
- String get forgot_password => 'Забыли пароль';
-
- @override
- String get continue_str => 'Продолжить';
-
- @override
- String get dont_have_account => 'У вас нет аккаунта?';
-
- @override
- String get sign_up => 'Зарегистрироваться';
-
- @override
- String get field_cannot_be_empty => 'Это поле не может быть пустым';
-
- @override
- String get password_too_short => 'Пароль не может быть короче 6 символов';
+ String get field_cannot_be_empty => 'Поле не может быть пустым';
@override
String get invalid_phone_format => 'Неверный формат номера телефона';
@override
- String get first_name => 'Имя';
+ String get password_too_short =>
+ 'Пароль должен содержать не менее 6 символов';
@override
- String get enter_first_name => 'Введите имя';
+ String get passwords_do_not_match => 'Пароли не совпадают';
@override
- String get repeat_password => 'Повторите пароль';
+ String get otp_code_incomplete => 'Код подтверждения введён не полностью';
@override
- String get enter_repeat_password => 'Введите пароль ещё раз';
-
- @override
- String get already_has_account => 'Уже есть аккаунт?';
-
- @override
- String get unexpected_error => 'Неожиданная ошибка';
-
- @override
- String consent_message(String appName) {
- return 'Продолжая, вы соглашаетесь получать звонки или SMS-сообщения, включая автоматические, от $appName и его партнёров на указанный номер.';
- }
-
- @override
- String get otp_code_incomplete =>
- 'Код неполный. Пожалуйста, введите полный код.';
-
- @override
- String get passwords_do_not_match => 'Пароли не совпадают.';
-
- @override
- String get reset_password => 'Восстановить пароль';
-
- @override
- String get new_password => 'Новый пароль';
-
- @override
- String enter_otp_code(String phoneNumber) {
- return 'Введите 5-значный код, отправленный на номер $phoneNumber';
- }
-
- @override
- String get resend_otp_after => 'Вы можете повторно отправить код через';
+ String get unexpected_error =>
+ 'Произошла непредвиденная ошибка. Пожалуйста, попробуйте снова.';
}
diff --git a/lib/core/l10n/app_localizations_uz.dart b/lib/core/l10n/app_localizations_uz.dart
index cbae3f0..32a9c0f 100644
--- a/lib/core/l10n/app_localizations_uz.dart
+++ b/lib/core/l10n/app_localizations_uz.dart
@@ -9,423 +9,22 @@ class AppLocalizationsUz extends AppLocalizations {
AppLocalizationsUz([String locale = 'uz']) : super(locale);
@override
- String get useYourTAxiAccount =>
- 'Boshlash uchun Uber hisobingizdan foydalaning';
+ String get field_cannot_be_empty => 'Maydon bo‘sh bo‘lishi mumkin emas';
@override
- String get enterYourMobileNumber => 'Telefon raqamingizni kiriting';
-
- @override
- String get mobileNumber => 'Telefon raqami';
-
- @override
- String get next => 'Keyingi';
-
- @override
- String get contestToGetCallAndSms =>
- 'Davom etish orqali siz Uber va uning hamkorlaridan avtomatlashtirilgan qo‘ng‘iroqlar, WhatsApp yoki SMS xabarlarini olishga rozilik bildirasiz.';
-
- @override
- String get continueWithGoogle => 'Google orqali davom etish';
-
- @override
- String get or => 'yoki';
-
- @override
- String get welcomeBack => 'Xush kelibsiz, null';
-
- @override
- String get pleaseEnterYourPassword => 'Iltimos, parolingizni kiriting';
-
- @override
- String get iHaveForgotPassword => 'Parolimni unutdim';
-
- @override
- String get iCantSignIn => 'Kirishda muammo bor';
-
- @override
- String enter4DigitCodeSentYou(String phone) {
- return 'Sizga $phone raqamiga yuborilgan 4 xonali kodni kiriting';
- }
-
- @override
- String iHavenRecievedCode(String time) {
- return 'Men hali kodni olmabman (\$$time)';
- }
-
- @override
- String get delivery => 'Yetkazish';
-
- @override
- String get pickUp => 'Olib ketish';
-
- @override
- String get dineIn => 'Joyida';
-
- @override
- String get allCategories => 'Barcha toifalar';
-
- @override
- String get convenience => 'Do‘kon';
-
- @override
- String get alcohol => 'Alkogol';
-
- @override
- String get petSupplies => 'Uy hayvoni uchun';
-
- @override
- String get flowers => 'Gullar';
-
- @override
- String get grocery => 'Bozor';
-
- @override
- String get american => 'Amerika';
-
- @override
- String get speciality => 'Maxsus';
-
- @override
- String get takeout => 'Olib ketish';
-
- @override
- String get asian => 'Osiyo taomlari';
-
- @override
- String get iceCream => 'Muzqaymoq';
-
- @override
- String get halal => 'Halol';
-
- @override
- String get retails => 'Do‘konlar';
-
- @override
- String get caribbean => 'Karib';
-
- @override
- String get indian => 'Hind taomlari';
-
- @override
- String get french => 'Fransuz';
-
- @override
- String get fastFoods => 'Fast-fud';
-
- @override
- String get burger => 'Burger';
-
- @override
- String get ride => 'Yo‘l';
-
- @override
- String get chinese => 'Xitoy taomlari';
-
- @override
- String get dessert => 'Desert';
-
- @override
- String get more => 'Ko\'proq';
-
- @override
- String get orderDetails => 'Buyurtma tafsilotlari';
-
- @override
- String get deliverNow => 'Hozir yetkazish';
-
- @override
- String get schedule => 'Rejalashtirish';
-
- @override
- String get enterNewAddress => 'Yangi manzil kiriting';
-
- @override
- String get nearby => 'Yaqin joylar';
-
- @override
- String get currentLocation => 'Joriy joylashuv';
-
- @override
- String get enable => 'Yoqqish';
-
- @override
- String get recentLocations => 'Yaqinda ishlatilgan manzillar';
-
- @override
- String get allFilters => 'Barcha filtrlar';
-
- @override
- String get sort => 'Saralash';
-
- @override
- String get pickedForYou => 'Siz uchun';
-
- @override
- String get mostPopular => 'Eng ommabop';
-
- @override
- String get rating => 'Reyting';
-
- @override
- String get deliveryTime => 'Yetkazib berish vaqti';
-
- @override
- String fromUberEats(String name) {
- return '$name tomonidan';
- }
-
- @override
- String get deals => 'Aksiyalar';
-
- @override
- String get bestOverall => 'Eng yaxshilari';
-
- @override
- String get priceRange => 'Narx oralig‘i';
-
- @override
- String get maxDeliveryFee => 'Maks. yetkazish narxi';
-
- @override
- String get dietary => 'Parhez';
-
- @override
- String get vegetarian => 'Vegetarian';
-
- @override
- String get vegan => 'Vegan';
-
- @override
- String get glutenFree => 'Glutensiz';
-
- @override
- String get allergyFriendly => 'Allergiyaga mos';
-
- @override
- String get atLeast => 'Kаmida';
-
- @override
- String get apply => 'Qo‘llash';
-
- @override
- String get pickedForYouDefault => 'Siz uchun tanlangan (standart)';
-
- @override
- String get popular => 'Eng ommabop';
-
- @override
- String get topRated => 'Yuqori reytingli';
-
- @override
- String get fast => 'Tezkor';
-
- @override
- String get featuredStores => 'Mashhur do‘konlar';
-
- @override
- String opensAt(String time) {
- return 'Soat $time dan ochiladi';
- }
-
- @override
- String spendAndSave(String spend, String save) {
- return '$spend sarflang, $save tejang';
- }
-
- @override
- String get cartsTitle => 'Savatlar';
-
- @override
- String get addItemsStartBasket => 'Savatni boshlash uchun mahsulot qo‘shing';
-
- @override
- String get basketHint =>
- 'Restorandan yoki do\'kondan mahsulot qo‘shsangiz, savatingiz shu yerda paydo bo‘ladi.';
-
- @override
- String get startShopping => 'Xaridni boshlash';
-
- @override
- String get orders => 'Buyurtmalar';
-
- @override
- String get recentSearches => 'Yaqinda qidirilganlar';
-
- @override
- String get cafe => 'Kafe';
-
- @override
- String get irish => 'Irlandcha';
-
- @override
- String get topCategories => 'Eng ommabop toifalar';
-
- @override
- String get breakfastAndBrunch => 'Nonushta va bransh';
-
- @override
- String get coffeeAndTea => 'Qahva va choy';
-
- @override
- String get latestDeals => 'Yangi chegirmalar';
-
- @override
- String get restaurantRewards => 'Restoran bonuslari';
-
- @override
- String get nationwideShipping => 'Butun mamlakat bo‘ylab yetkazib berish';
-
- @override
- String get mexican => 'Meksika taomlari';
-
- @override
- String get fastFood => 'Tezkor ovqatlar';
-
- @override
- String get healthy => 'Sog‘lom ovqatlar';
-
- @override
- String get pizza => 'Pitsa';
-
- @override
- String get sandwich => 'Sendvich';
-
- @override
- String get bakery => 'Qandolatxona';
-
- @override
- String get categoriesShort => 'Ovqat, xaridlar, ichimliklar va boshqalar.';
-
- @override
- String get yourFavourites => 'Sevimlilar';
-
- @override
- String get wallet => 'Hamyon';
-
- @override
- String get sendAGift => 'Sovg‘a yuborish';
-
- @override
- String get businessPreferences => 'Biznes sozlamalari';
-
- @override
- String get businessSub => 'Ishdagi ovqatlarni tezroq va osonroq qiling';
-
- @override
- String get help => 'Yordam';
-
- @override
- String get promotions => 'Aksiyalar';
-
- @override
- String get uberPass => 'Uber Pass';
-
- @override
- String get uberPassSub => '1 oy bepul ulaning';
-
- @override
- String get deliverWithUber => 'Uber bilan yetkazib bering';
-
- @override
- String get settings => 'Sozlamalar';
-
- @override
- String get home => 'Bosh sahifa';
-
- @override
- String get browse => 'Kategoriya';
-
- @override
- String get baskets => 'Savatcha';
-
- @override
- String get account => 'Profil';
-
- @override
- String get changeLanguage => 'Tilni o\'zgartirish';
-
- @override
- String get language => 'Til';
-
- @override
- String get login => 'Kirish';
-
- @override
- String get phone_number => 'Telefon raqami';
-
- @override
- String get enter_phone_number => 'Telefon raqamingizni kiriting';
-
- @override
- String get password => 'Parol';
-
- @override
- String get enter_password => 'Parolni kiriting';
-
- @override
- String get forgot_password => 'Parolni unutdingizmi';
-
- @override
- String get continue_str => 'Davom etish';
-
- @override
- String get dont_have_account => 'Hisobingiz yo‘qmi?';
-
- @override
- String get sign_up => 'Ro‘yxatdan o‘tish';
-
- @override
- String get field_cannot_be_empty => 'Bu maydon bo\'sh bo\'lishi mumkin emas';
+ String get invalid_phone_format => 'Telefon raqami formati noto‘g‘ri';
@override
String get password_too_short =>
- 'Parol 6 ta belgidan kam bo\'lishi mumkin emas';
+ 'Parol kamida 6 ta belgidan iborat bo‘lishi kerak';
@override
- String get invalid_phone_format => 'Noto\'g\'ri telefon raqam formati';
+ String get passwords_do_not_match => 'Parollar mos emas';
@override
- String get first_name => 'Ism';
+ String get otp_code_incomplete => 'OTP kodi to‘liq kiritilmagan';
@override
- String get enter_first_name => 'Ismingizni kiriting';
-
- @override
- String get repeat_password => 'Parolni takrorlang';
-
- @override
- String get enter_repeat_password => 'Parolni qayta kiriting';
-
- @override
- String get already_has_account => 'Akkountingiz bormi?';
-
- @override
- String get unexpected_error => 'Kutilmagan xatolik';
-
- @override
- String consent_message(String appName) {
- return 'Davom etish orqali siz $appName va uning hamkorlaridan siz kiritgan raqamga, shu jumladan avtomatik vositalar orqali, qo‘ng‘iroqlar yoki SMS xabarlar olishingizga rozilik bildirasiz.';
- }
-
- @override
- String get otp_code_incomplete =>
- 'Kod yetarli emas. Iltimos, to‘liq kodni kiriting.';
-
- @override
- String get passwords_do_not_match => 'Parollar mos kelmadi.';
-
- @override
- String get reset_password => 'Parolni qayta tiklash';
-
- @override
- String get new_password => 'Yangi parol';
-
- @override
- String enter_otp_code(String phoneNumber) {
- return '$phoneNumber raqamiga yuborilgan 5 xonali kodni kiriting';
- }
-
- @override
- String get resend_otp_after => 'OTP kodni qayta yuborish mumkin bo‘ladi';
+ String get unexpected_error =>
+ 'Kutilmagan xatolik yuz berdi. Iltimos, qayta urinib ko‘ring.';
}
diff --git a/lib/core/router/app_routes.dart b/lib/core/router/app_routes.dart
index 517d76c..1e415f3 100644
--- a/lib/core/router/app_routes.dart
+++ b/lib/core/router/app_routes.dart
@@ -1,12 +1,6 @@
import 'package:flutter/cupertino.dart';
-import 'package:food_delivery_client/feature/auth/domain/usecases/verify_otp_code_login_usecase.dart';
-import 'package:food_delivery_client/feature/auth/presentation/pages/forgot_password_page/forgot_password_page.dart';
-import 'package:food_delivery_client/feature/auth/presentation/pages/login_page/login_page.dart';
-import 'package:food_delivery_client/feature/auth/presentation/pages/register_page/register_page.dart';
-import 'package:food_delivery_client/feature/auth/presentation/pages/reset_password_page/reset_password_page.dart';
-import 'package:food_delivery_client/feature/auth/presentation/pages/verify_otp_code_page/verify_otp_code_page.dart';
-import 'package:food_delivery_client/feature/auth/presentation/pages/verify_phone_number_page/verify_phone_page.dart';
-import 'package:food_delivery_client/feature/home/presentation/pages/restaurants_by_category_page/restaurants_by_category_page.dart';
+import 'package:food_delivery_client/feature/onboarding/presentation/pages/onboarding_page/onboarding_page.dart';
+import 'package:food_delivery_client/feature/onboarding/presentation/pages/splash_page/splash_page.dart';
import '../../food_delivery_client.dart';
@@ -18,67 +12,13 @@ class AppRoutes {
navigatorKey: navigatorKey,
initialLocation: Routes.splash,
routes: [
- GoRoute(path: Routes.splash, builder: (context, state) => SplashPage()),
GoRoute(
- path: Routes.login,
- pageBuilder: (context, state) => CupertinoPage(child: LoginPage()),
- ),
-
- GoRoute(
- path: Routes.register,
- pageBuilder: (context, state) => CupertinoPage(
- child: RegisterPage(phoneNumber: state.extra as String),
- ),
+ path: Routes.splash,
+ pageBuilder: (context, state) => CupertinoPage(child: SplashPage()),
),
GoRoute(
- path: Routes.forgotPassword,
- pageBuilder: (context, state) =>
- CupertinoPage(child: ForgotPasswordPage()),
- ),
- GoRoute(
- path: Routes.verifyPhoneNumber,
- pageBuilder: (context, state) => CupertinoPage(
- child: VerifyPhoneNumberPage(isRegister: state.extra as bool),
- ),
- ),
-
- GoRoute(
- path: Routes.verifyOtpCode,
- pageBuilder: (context, state) => CupertinoPage(
- child: VerifyOtpCodePage(params: state.extra as OtpCodePageParams),
- ),
- ),
-
- GoRoute(
- path: Routes.resetPassword,
- pageBuilder: (context, state) => CupertinoPage(
- child: ResetPasswordPage(phoneNumber: state.extra as String),
- ),
- ),
-
- GoRoute(
- path: Routes.main,
- pageBuilder: (context, state) => CupertinoPage(child: MainPage()),
- ),
- GoRoute(
- path: Routes.categories,
- pageBuilder: (context, state) => CupertinoPage(child: CategoriesPage()),
- ),
- GoRoute(
- path: Routes.filters,
- pageBuilder: (context, state) => CupertinoPage(
- child: FiltersPage(homeBloc: state.extra as HomeBloc),
- ),
- ),
- GoRoute(
- path: Routes.restaurantsByCategory,
- pageBuilder: (context, state) => CupertinoPage(
- child: RestaurantsByCategoryPage(categoryName: state.extra as String),
- ),
- ),
- GoRoute(
- path: Routes.browse,
- pageBuilder: (context, state) => CupertinoPage(child: BrowsePage()),
+ path: Routes.onBoarding,
+ pageBuilder: (context, state) => CupertinoPage(child: OnboardingPage()),
),
],
);
diff --git a/lib/core/router/routes_name.dart b/lib/core/router/routes_name.dart
index d771e1f..d19c679 100644
--- a/lib/core/router/routes_name.dart
+++ b/lib/core/router/routes_name.dart
@@ -1,5 +1,6 @@
abstract class Routes {
static const String splash = '/splash';
+ static const String onBoarding = '/onboarding';
static const String login = '/login';
static const String register = '/register';
static const String main = '/main';
diff --git a/lib/core/theme/app_colors.dart b/lib/core/theme/app_colors.dart
index 02c4884..026e2d2 100644
--- a/lib/core/theme/app_colors.dart
+++ b/lib/core/theme/app_colors.dart
@@ -28,5 +28,24 @@ abstract class AppColors {
static const Color c7F7F7F = Color(0xFF7F7F7F);
static const Color c888888 = Color(0xFF888888);
-
+ /*
+ New figma colors
+ */
+ static const Color c0A0D13 = Color(0xFF0A0D13);
+ static const Color cFF6F00 = Color(0xFFFF6F00);
+ static const Color cFF9D3F = Color(0xFFFF9D3F);
+ static const Color cFFB966 = Color(0xFFFFB966);
+ static const Color cFFB669 = Color(0xFFFFB699);
+ static const Color cFFEDCC = Color(0xFFFFEDCC);
+ static const Color c2C3131 = Color(0xFF2C3131);
+ static const Color c626262 = Color(0xFF626262);
+ static const Color cA9A9A9 = Color(0xFFA9A9A9);
+ static const Color cCACACA = Color(0xFFCACACA);
+ static const Color cE9E9E9 = Color(0xFFE9E9E9);
+ static const Color c292F3D = Color(0xFF292F3D);
+ static const Color c131720 = Color(0xFF131720);
+ static const Color cBD3325 = Color(0xFFBD3325);
+ static const Color c9EA5B7 = Color(0xFF9EA5B7);
+ static const Color c479B36 = Color(0xFF479B36);
+ static const Color cFFAB40 = Color(0xFFFFAB40);
}
diff --git a/lib/core/theme/app_icons.dart b/lib/core/theme/app_icons.dart
index f39b273..3d30efc 100644
--- a/lib/core/theme/app_icons.dart
+++ b/lib/core/theme/app_icons.dart
@@ -1,64 +1,15 @@
abstract class AppIcons {
- //baseurl
- static const String baseUrl = 'assets/icons';
-
- //icons
- static const String icHome = "$baseUrl/ic_home.svg";
- static const String icBrowse = "$baseUrl/ic_browse.svg";
- static const String icBasket = "$baseUrl/ic_basket.svg";
- static const String icAccount = "$baseUrl/ic_account.svg";
- static const String icHomeActive = "$baseUrl/ic_home_active.svg";
- static const String icBrowseActive = "$baseUrl/ic_browse_active.svg";
- static const String icBasketActive = "$baseUrl/ic_basket_active.svg";
- static const String icAccountActive = "$baseUrl/ic_account_active.svg";
- static const String icBack = "$baseUrl/ic_back.svg";
- static const String icDislike = "$baseUrl/ic_dislike.svg";
- static const String icDislikeGrey = "$baseUrl/ic_dislike_grey.svg";
- static const String icEat = "$baseUrl/ic_eat.svg";
- static const String icEye = "$baseUrl/ic_eye.svg";
- static const String icFilter = "$baseUrl/ic_filter.svg";
- static const String icNext = "$baseUrl/ic_next.svg";
- static const String icNextGrey = "$baseUrl/ic_next_grey.svg";
- static const String icOval = "$baseUrl/ic_oval.svg";
- static const String icUber = "$baseUrl/ic_uber.svg";
- static const String icLocation = "$baseUrl/ic_location.svg";
- static const String icArrowBottom = "$baseUrl/ic_arrow_btm.svg";
- static const String icEmptyBasket = "$baseUrl/ic_empty_basket.svg";
-
- static const String icPicked = "$baseUrl/ic_picked.svg";
- static const String icMostPopular = "$baseUrl/ic_popular.svg";
- static const String icStar = "$baseUrl/ic_rating.svg";
- static const String icDeliveryTime = "$baseUrl/ic_delivery_time.svg";
- static const String icDeals = "$baseUrl/ic_deals.svg";
- static const String icClose = "$baseUrl/ic_close.svg";
- static const String icCurrentLocation = "$baseUrl/ic_current_loc.svg";
- static const String icEdit = "$baseUrl/ic_edit.svg";
- static const String icSearch = "$baseUrl/ic_search.svg";
- static const String icCheck = "$baseUrl/ic_check.svg";
- static const String icCheck1 = "$baseUrl/ic_check1.svg";
- static const String icArrowRight = "$baseUrl/ic_arrow_right.svg";
- static const String icDeliver = "$baseUrl/ic_deliver.svg";
- static const String icGift = "$baseUrl/ic_gift.svg";
- static const String icHelp = "$baseUrl/ic_help.svg";
- static const String icLike = "$baseUrl/ic_like.svg";
- static const String icPromotions = "$baseUrl/ic_promotions.svg";
- static const String icSettings = "$baseUrl/ic_settings.svg";
- static const String icRewards = "$baseUrl/ic_rewards.svg";
- static const String icUberPass = "$baseUrl/ic_uber_pass.svg";
- static const String icWallet = "$baseUrl/ic_wallet.svg";
- static const String icOrdersSvg = "$baseUrl/ic_orders_svg.svg";
- static const String icLanguage = "$baseUrl/ic_language.svg";
- static const String icArrowRightLight = "$baseUrl/ic_arrow_right_light.svg";
-
- ///.png icons
- static const String icBestOverall = "$baseUrl/ic_best.png";
- static const String icVegetarian = "$baseUrl/ic_vegetarian.png";
- static const String icVegen = "$baseUrl/ic_vegen.png";
- static const String icGlutenFree = "$baseUrl/ic_gluten_free.png";
- static const String icAllergyFriendly = "$baseUrl/ic_allergy_friendly.png";
- static const String icClock = "$baseUrl/ic_clock.svg";
- static const String icOrders = "$baseUrl/ic_orders.png";
- static const String icUz = "$baseUrl/ic_uzb.png";
- static const String icRu = "$baseUrl/ic_rus.png";
- static const String icEn = "$baseUrl/ic_eng.png";
+ static const String baseUrl = "assets/icons/common";
+ static const String icLogo = "$baseUrl/ic_logo.svg";
+}
+
+abstract class AppLightSvgs {
+ static const String baseUrl = "assets/icons/light";
+
+ static const String icSplash = "$baseUrl/ic_splash.svg";
+}
+
+abstract class AppDarkSvgs {
+ static const String baseUrl = "assets/icons/dark";
+ static const String icSplash = "$baseUrl/ic_splash.svg";
}
diff --git a/lib/core/theme/app_theme.dart b/lib/core/theme/app_theme.dart
index 744a879..a1cef06 100644
--- a/lib/core/theme/app_theme.dart
+++ b/lib/core/theme/app_theme.dart
@@ -1,8 +1,12 @@
+import 'package:food_delivery_client/core/theme/app_theme_textstyles.dart';
+import 'package:food_delivery_client/core/theme/theme_icons.dart';
+
import '../../food_delivery_client.dart';
abstract class AppTheme {
static ThemeData get lightTheme => ThemeData.light().copyWith(
brightness: Brightness.light,
+ extensions: [AppThemeIcons.light, AppThemeTextStyles.light],
// colorScheme: ColorScheme(
// brightness: Brightness.light,
@@ -22,6 +26,93 @@ abstract class AppTheme {
surfaceTintColor: AppColors.cTransparent,
),
scaffoldBackgroundColor: AppColors.cFFFFFF,
+ progressIndicatorTheme: ProgressIndicatorThemeData(
+ color: AppColors.cFFFFFF,
+ circularTrackColor: AppColors.cFFFFFF,
+ linearTrackColor: AppColors.cFFFFFF,
+ borderRadius: BorderRadiusGeometry.circular(30),
+ ),
+
+ pageTransitionsTheme: PageTransitionsTheme(
+ builders: {
+ TargetPlatform.android: CupertinoPageTransitionsBuilder(),
+ TargetPlatform.iOS: CupertinoPageTransitionsBuilder(),
+ },
+ ),
+ bottomNavigationBarTheme: BottomNavigationBarThemeData(
+ elevation: 0,
+ showSelectedLabels: true,
+ showUnselectedLabels: true,
+ backgroundColor: AppColors.cFFFFFF,
+ type: BottomNavigationBarType.fixed,
+ unselectedItemColor: AppColors.cB5B5B5,
+ selectedItemColor: AppColors.c000000,
+ selectedLabelStyle: AppTextStyles.size10Regular.copyWith(
+ color: Colors.red,
+ ),
+ unselectedLabelStyle: AppTextStyles.size10Regular.copyWith(
+ color: AppColors.c000000,
+ ),
+ // unselectedLabelStyle: AppTextStyles.size14Medium.copyWith(
+ // color: AppColors.c888888,
+ // fontFamily: "fontNorms",
+ // ),
+ ),
+ // inputDecorationTheme: InputDecorationTheme(
+ // filled: true,
+ // fillColor: AppColors.cMainBg,
+ // hintStyle: AppTextStyles.size15Medium.copyWith(color: AppColors.c888888),
+ // contentPadding: EdgeInsets.symmetric(horizontal: 16.w, vertical: 10.h),
+ // errorStyle: AppTextStyles.size12Medium.copyWith(color: AppColors.cRed),
+ // errorBorder: OutlineInputBorder(
+ // borderRadius: BorderRadius.circular(12.sp),
+ // borderSide: BorderSide(color: AppColors.cRed, width: 1.5.r),
+ // ),
+ // focusedBorder: OutlineInputBorder(
+ // borderRadius: BorderRadius.circular(12.sp),
+ // borderSide: BorderSide(color: AppColors.cFF9914, width: 1.5.r),
+ // ),
+ // enabledBorder: OutlineInputBorder(
+ // borderRadius: BorderRadius.circular(12.sp),
+ // borderSide: BorderSide(color: AppColors.cEDEDED, width: 1.5.r),
+ // ),
+ // focusedErrorBorder: OutlineInputBorder(
+ // borderRadius: BorderRadius.circular(12.sp),
+ // borderSide: BorderSide(color: AppColors.cRed, width: 1.5.r),
+ // ),
+ // disabledBorder: OutlineInputBorder(
+ // borderRadius: BorderRadius.circular(12.sp),
+ // borderSide: BorderSide(color: AppColors.cEDEDED, width: 1.5.r),
+ // ),
+ // border: OutlineInputBorder(
+ // borderRadius: BorderRadius.circular(12.sp),
+ // borderSide: BorderSide(color: AppColors.cEDEDED, width: 1.5.r),
+ // ),
+ // ),
+ );
+
+ static ThemeData get darkTheme => ThemeData.light().copyWith(
+ brightness: Brightness.dark,
+ extensions: [AppThemeIcons.dark, AppThemeTextStyles.dark],
+
+ // colorScheme: ColorScheme(
+ // brightness: Brightness.light,
+ // primary: AppColors.cFFFFFF,
+ // onPrimary:AppColors.cFFFFFF,
+ // secondary: AppColors.cFFFFFF,
+ // onSecondary: AppColors.cFFFFFF,
+ // error:AppColors.cRed,
+ // onError: AppColors.cRed,
+ // surface: AppColors.cFFFFFF,
+ // onSurface: AppColors.cFFFFFF,
+ // ),
+ appBarTheme: AppBarTheme(
+ elevation: 0,
+ backgroundColor: AppColors.cFFFFFF,
+ foregroundColor: AppColors.cFFFFFF,
+ surfaceTintColor: AppColors.cTransparent,
+ ),
+ scaffoldBackgroundColor: AppColors.c0A0D13,
progressIndicatorTheme: ProgressIndicatorThemeData(
color: AppColors.cFFFFFF,
diff --git a/lib/core/theme/app_theme_textstyles.dart b/lib/core/theme/app_theme_textstyles.dart
new file mode 100644
index 0000000..a47675c
--- /dev/null
+++ b/lib/core/theme/app_theme_textstyles.dart
@@ -0,0 +1,157 @@
+import 'package:flutter/material.dart';
+import 'package:food_delivery_client/core/constants/app_locale_keys.dart';
+import 'package:food_delivery_client/core/core.dart';
+
+class AppThemeTextStyles extends ThemeExtension {
+ //Regular fonts
+ final TextStyle size14Regular;
+
+ //Medium
+
+ final TextStyle size16Medium;
+
+ //SemiBold
+
+ final TextStyle size16SemiBold;
+ final TextStyle size24SemiBold;
+
+ //Bold
+
+ final TextStyle size14Bold;
+ final TextStyle size24Bold;
+
+ //Black
+ final TextStyle size64Black;
+
+ AppThemeTextStyles({
+ required this.size14Regular,
+ required this.size16Medium,
+ required this.size16SemiBold,
+ required this.size24SemiBold,
+ required this.size14Bold,
+ required this.size24Bold,
+ required this.size64Black,
+ });
+
+ static const String _fontBlack = AppLocaleKeys.fontBlack;
+ static const String _fontBold = AppLocaleKeys.fontBold;
+ static const String _fontSemiBold = AppLocaleKeys.fontSemiBold;
+ static const String _fontMedium = AppLocaleKeys.fontMedium;
+ static const String _fontRegular = AppLocaleKeys.fontRegular;
+
+ static AppThemeTextStyles light = AppThemeTextStyles(
+ size14Regular: TextStyle(
+ fontSize: 14,
+ fontWeight: FontWeight.w400,
+ fontFamily: _fontRegular,
+ ),
+ size16Medium: TextStyle(
+ fontSize: 16,
+ fontWeight: FontWeight.w500,
+ fontFamily: _fontMedium,
+ ),
+ size16SemiBold: TextStyle(
+ fontSize: 16,
+ fontWeight: FontWeight.w600,
+ fontFamily: _fontSemiBold,
+ ),
+ size24SemiBold: TextStyle(
+ fontSize: 24,
+ fontWeight: FontWeight.w600,
+ fontFamily: _fontSemiBold,
+ ),
+ size14Bold: TextStyle(
+ fontSize: 14,
+ fontWeight: FontWeight.w700,
+ fontFamily: _fontBold,
+ ),
+ size24Bold: TextStyle(
+ fontSize: 24,
+ fontWeight: FontWeight.w700,
+ fontFamily: _fontBold,
+ ),
+ size64Black: TextStyle(
+ fontSize: 64,
+ fontWeight: FontWeight.w900,
+ fontFamily: _fontBlack,
+ color: AppColors.cFFFFFF,
+ ),
+ );
+
+ static AppThemeTextStyles dark = AppThemeTextStyles(
+ size14Regular: TextStyle(
+ fontSize: 14,
+ fontWeight: FontWeight.w400,
+ fontFamily: _fontRegular,
+ ),
+ size16Medium: TextStyle(
+ fontSize: 16,
+ fontWeight: FontWeight.w500,
+ fontFamily: _fontMedium,
+ ),
+ size16SemiBold: TextStyle(
+ fontSize: 16,
+ fontWeight: FontWeight.w600,
+ fontFamily: _fontSemiBold,
+ ),
+ size24SemiBold: TextStyle(
+ fontSize: 24,
+ fontWeight: FontWeight.w600,
+ fontFamily: _fontSemiBold,
+ ),
+ size14Bold: TextStyle(
+ fontSize: 14,
+ fontWeight: FontWeight.w700,
+ fontFamily: _fontBold,
+ ),
+ size24Bold: TextStyle(
+ fontSize: 24,
+ fontWeight: FontWeight.w700,
+ fontFamily: _fontBold,
+ ),
+ size64Black: TextStyle(
+ fontSize: 64,
+ fontWeight: FontWeight.w900,
+ fontFamily: _fontBlack,
+ color: AppColors.cFFFFFF,
+ ),
+ );
+
+ @override
+ ThemeExtension copyWith({
+ TextStyle? size14Regular,
+ TextStyle? size16Medium,
+ TextStyle? size16SemiBold,
+ TextStyle? size24SemiBold,
+ TextStyle? size14Bold,
+ TextStyle? size24Bold,
+ TextStyle? size64Black,
+ }) {
+ return AppThemeTextStyles(
+ size14Regular: size14Regular ?? this.size14Regular,
+ size16Medium: size16Medium ?? this.size16Medium,
+ size16SemiBold: size16SemiBold ?? this.size16SemiBold,
+ size24SemiBold: size24SemiBold ?? this.size24SemiBold,
+ size14Bold: size14Bold ?? this.size14Bold,
+ size24Bold: size24Bold ?? this.size24Bold,
+ size64Black: size64Black ?? this.size64Black,
+ );
+ }
+
+ @override
+ ThemeExtension lerp(
+ covariant ThemeExtension? other,
+ double t,
+ ) {
+ if (other is! AppThemeTextStyles) return this;
+ return AppThemeTextStyles(
+ size14Regular: TextStyle.lerp(size14Regular, other.size14Regular, t)!,
+ size16Medium: TextStyle.lerp(size16Medium, other.size16Medium, t)!,
+ size16SemiBold: TextStyle.lerp(size16SemiBold, other.size16SemiBold, t)!,
+ size24SemiBold: TextStyle.lerp(size24SemiBold, other.size24SemiBold, t)!,
+ size14Bold: TextStyle.lerp(size14Bold, other.size14Bold, t)!,
+ size24Bold: TextStyle.lerp(size24Bold, other.size24Bold, t)!,
+ size64Black: TextStyle.lerp(size64Black, other.size64Black, t)!,
+ );
+ }
+}
diff --git a/lib/core/theme/theme_icons.dart b/lib/core/theme/theme_icons.dart
new file mode 100644
index 0000000..229f8a0
--- /dev/null
+++ b/lib/core/theme/theme_icons.dart
@@ -0,0 +1,26 @@
+import 'package:flutter/material.dart';
+import 'package:food_delivery_client/core/core.dart';
+
+class AppThemeIcons extends ThemeExtension {
+ final String icSplash;
+
+ AppThemeIcons({required this.icSplash});
+
+ static AppThemeIcons light = AppThemeIcons(icSplash: AppLightSvgs.icSplash);
+
+ static AppThemeIcons dark = AppThemeIcons(icSplash: AppDarkSvgs.icSplash);
+
+ @override
+ ThemeExtension copyWith({String? icSplash}) {
+ return AppThemeIcons(icSplash: icSplash ?? this.icSplash);
+ }
+
+ @override
+ ThemeExtension lerp(
+ covariant ThemeExtension? other,
+ double t,
+ ) {
+ if (other is! AppThemeIcons) return this;
+ return t < 0.5 ? this : other;
+ }
+}
diff --git a/lib/feature/account/account.dart b/lib/feature/account/account.dart
deleted file mode 100644
index 704a6f0..0000000
--- a/lib/feature/account/account.dart
+++ /dev/null
@@ -1 +0,0 @@
-export 'presentation/pages/account_page/account_page.dart';
diff --git a/lib/feature/account/presentation/mixins/account_mixins.dart b/lib/feature/account/presentation/mixins/account_mixins.dart
deleted file mode 100644
index ab4ada7..0000000
--- a/lib/feature/account/presentation/mixins/account_mixins.dart
+++ /dev/null
@@ -1,21 +0,0 @@
-import '../../../../core/theme/app_icons.dart';
-
-mixin AccountMixins {
- final List leadingIcons = [
- AppIcons.icOrdersSvg,
- AppIcons.icLike,
- AppIcons.icRewards,
- AppIcons.icWallet,
- AppIcons.icGift,
- AppIcons.icHelp,
- AppIcons.icPromotions,
- AppIcons.icUberPass,
- AppIcons.icDeliver,
- AppIcons.icLanguage,
- AppIcons.icSettings,
- ];
-
- final List flags = [AppIcons.icEn, AppIcons.icUz, AppIcons.icRu];
-
- final List languages = ["English", "O'zbekcha", "Русский"];
-}
diff --git a/lib/feature/account/presentation/pages/account_page/account_page.dart b/lib/feature/account/presentation/pages/account_page/account_page.dart
deleted file mode 100644
index 1066e42..0000000
--- a/lib/feature/account/presentation/pages/account_page/account_page.dart
+++ /dev/null
@@ -1,13 +0,0 @@
-import 'package:food_delivery_client/feature/account/presentation/pages/account_page/widgets/w_account_body.dart';
-
-import '../../../../../food_delivery_client.dart';
-
-class AccountPage extends StatelessWidget {
- const AccountPage({super.key});
-
- @override
- Widget build(BuildContext context) {
- return WAccountBody();
- }
-}
-
diff --git a/lib/feature/account/presentation/pages/account_page/widgets/w_account_body.dart b/lib/feature/account/presentation/pages/account_page/widgets/w_account_body.dart
deleted file mode 100644
index 2e01df1..0000000
--- a/lib/feature/account/presentation/pages/account_page/widgets/w_account_body.dart
+++ /dev/null
@@ -1,208 +0,0 @@
-import 'package:food_delivery_client/feature/account/presentation/mixins/account_mixins.dart';
-
-import '../../../../../../food_delivery_client.dart';
-
-class WAccountBody extends StatelessWidget with AccountMixins {
- WAccountBody({super.key});
-
- @override
- Widget build(BuildContext context) {
- final List titles = [
- context.loc.orders,
- context.loc.yourFavourites,
- context.loc.restaurantRewards,
- context.loc.wallet,
- context.loc.sendAGift,
- context.loc.help,
- context.loc.promotions,
- context.loc.uberPass,
- context.loc.deliverWithUber,
- context.loc.changeLanguage,
- context.loc.settings,
- ];
- return WLayout(
- child: Scaffold(
- appBar: PreferredSize(
- preferredSize: Size.fromHeight(56),
- child: WAccountAppBar().paddingSymmetric(horizontal: 19),
- ),
- body: LayoutBuilder(
- builder: (context, constraints) => ConstrainedBox(
- constraints: BoxConstraints(minHeight: constraints.maxHeight),
- child: ListView.builder(
- shrinkWrap: true,
- itemCount: leadingIcons.length,
- padding: EdgeInsets.symmetric(vertical:5),
- physics: const AlwaysScrollableScrollPhysics(),
- scrollDirection: Axis.vertical,
- itemBuilder: (context, index) => WAccountRowItem(
- onTap: () {
- if (index == 9) {
- WChangeLanguage().show(context);
- }
- },
- svgPath: leadingIcons[index],
- title: titles[index],
- ),
- ),
- ),
- ),
- ),
- );
- }
-}
-
-class WAccountAppBar extends StatelessWidget {
- const WAccountAppBar({super.key});
-
- @override
- Widget build(BuildContext context) {
- return AppBar(
- centerTitle: false,
- leading: ClipRRect(
- borderRadius: AppUtils.kBorderRadius40,
- child: SizedBox(
- child: Image.asset(
- AppImages.imgAvatar,
- height: 36,
- width: 36,
- fit: BoxFit.cover,
- ),
- ),
- ).paddingAll(8),
- title: Text('Felix', style: AppTextStyles.size18Medium),
- );
- }
-}
-
-class WAccountRowItem extends StatelessWidget {
- const WAccountRowItem({
- super.key,
- required this.svgPath,
- required this.title,
- this.subTitle,
- this.leadingIcon,
- required this.onTap,
- });
-
- final String svgPath;
- final String title;
- final String? subTitle;
- final Widget? leadingIcon;
- final VoidCallback onTap;
-
- @override
- Widget build(BuildContext context) {
- return InkWell(
- onTap: onTap,
- child: Ink(
- child: Row(
- spacing: 24,
- mainAxisAlignment: MainAxisAlignment.start,
- children: [
- leadingIcon ??
- SizedBox(
- height: 24,
- width: 24,
- child: SvgPicture.asset(svgPath),
- ),
- Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Text(title, style: AppTextStyles.size14Medium),
- if (subTitle != null)
- Text(
- subTitle!,
- style: AppTextStyles.size14Medium.copyWith(
- color: AppColors.c34A853,
- ),
- ),
- ],
- ),
- ],
- ).paddingSymmetric(vertical: 16, horizontal: 22),
- ),
- );
- }
-}
-
-class WChangeLanguage extends StatelessWidget with AccountMixins {
- WChangeLanguage({super.key});
-
- show(BuildContext context) {
- showModalBottomSheet(
- context: context,
- builder: (context) => Wrap(children: [this]),
- );
- }
-
- @override
- Widget build(BuildContext context) {
- return BlocBuilder(
- builder: (context, state) {
- return Material(
- color: AppColors.cFFFFFF,
- borderRadius: AppUtils.kBorderRadiusTop20,
- child: SizedBox(
- width: context.w,
- child: SafeArea(
- child: Column(
- children: [
- 10.verticalSpace,
- SizedBox(
- height: 6,
- width: 100,
- child: DecoratedBox(
- decoration: BoxDecoration(
- color: AppColors.cEEEEEE,
- borderRadius: AppUtils.kBorderRadius8,
- ),
- ),
- ),
- 10.verticalSpace,
- Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- Text(
- context.loc.changeLanguage,
- style: AppTextStyles.size20Medium,
- ),
- IconButton(
- onPressed: () {
- context.pop();
- },
- icon: SvgPicture.asset(AppIcons.icClose),
- ),
- ],
- ).paddingSymmetric(horizontal: 16),
- 15.verticalSpace,
- Column(
- children: List.generate(3, (index) {
- return AppListTile(
- onPressed: () {
- context.read().add(
- LanguageEvent.changed(L10n.locales[index]),
- );
- },
- isSelected: L10n.locales[index] == state.currentLocale,
- svgPath: '',
- leading: SizedBox(
- height: 24,
- width: 24,
- child: Image.asset(flags[index]),
- ),
- title: languages[index],
- titleTextStyle: AppTextStyles.size14Medium,
- );
- }),
- ),
- 10.verticalSpace
- ],
- ),
- ),
- ),
- );
- },
- );
- }
-}
diff --git a/lib/feature/auth/data/datasource/auth_datasource.dart b/lib/feature/auth/data/datasource/auth_datasource.dart
deleted file mode 100644
index d75b105..0000000
--- a/lib/feature/auth/data/datasource/auth_datasource.dart
+++ /dev/null
@@ -1,138 +0,0 @@
-import 'package:food_delivery_client/core/services/request_handler_service.dart';
-import 'package:food_delivery_client/feature/auth/data/models/response/login_response.dart';
-import 'package:food_delivery_client/feature/auth/domain/usecases/register_usecase.dart';
-import 'package:food_delivery_client/feature/auth/domain/usecases/reset_password_usecase.dart';
-import 'package:food_delivery_client/feature/auth/domain/usecases/verify_otp_code_login_usecase.dart';
-import 'package:food_delivery_client/feature/auth/domain/usecases/verify_phone_login_usecase.dart';
-import 'package:food_delivery_client/food_delivery_client.dart';
-
-abstract class AuthDatasource {
- Future login({
- required String phoneNumber,
- required String password,
- });
-
- Future verifyPhoneResetPassword({
- required VerifyPhoneNumberParams params,
- });
-
- Future verifyOtpCodeResetPassword({
- required VerifyOtpCodeParams params,
- });
-
- Future resetPassword({required ResetPasswordParams params});
-
- Future verifyPhoneRegister({
- required VerifyPhoneNumberParams params,
- });
-
- Future verifyOtpCodeRegister({
- required VerifyOtpCodeParams params,
- });
-
- Future register({required RegisterParams params});
-}
-
-@LazySingleton(as: AuthDatasource)
-class AuthDatasourceImpl implements AuthDatasource {
- final RequestHandlerService _requestHandlerService;
-
- AuthDatasourceImpl(this._requestHandlerService);
-
- @override
- Future login({
- required String phoneNumber,
- required String password,
- }) async {
- return _requestHandlerService.handleRequest(
- path: ApiConst.login,
- method: RequestMethodEnum.post,
- data: {"password": password, "phoneNumber": phoneNumber},
- fromJson: (response) async => LoginResponseModel.fromJson(response.data),
- );
- }
-
- @override
- Future register({required RegisterParams params}) async {
- return _requestHandlerService.handleRequest(
- path: ApiConst.register,
- method: RequestMethodEnum.post,
-
- data: {
- "firstName": params.firstName,
- "lastName": params.lastName,
- "password": params.password,
- "phoneNumber": params.phoneNumber,
- },
-
- fromJson: (response) async {
- return SuccessModel.fromJson(response.data);
- },
- );
- }
-
- @override
- Future resetPassword({
- required ResetPasswordParams params,
- }) async {
- return _requestHandlerService.handleRequest(
- path: ApiConst.resetPassword,
- method: RequestMethodEnum.post,
- data: {
- "newPassword": params.newPassword,
- "phoneNumber": params.phoneNumber,
- },
-
- fromJson: (response) async => SuccessModel.fromJson(response.data),
- );
- }
-
- @override
- Future verifyOtpCodeRegister({
- required VerifyOtpCodeParams params,
- }) async {
- return _requestHandlerService.handleRequest(
- path: ApiConst.verifyCode,
- method: RequestMethodEnum.post,
- data: {"code": params.otpCode, "phoneNumber": params.phoneNumber},
- fromJson: (response) async => SuccessModel.fromJson(response.data),
- );
- }
-
- @override
- Future verifyOtpCodeResetPassword({
- required VerifyOtpCodeParams params,
- }) async {
- return _requestHandlerService.handleRequest(
- path: ApiConst.forgotPassword,
- method: RequestMethodEnum.post,
- data: {"code": params.otpCode, "phoneNumber": params.phoneNumber},
- fromJson: (response) async => SuccessModel.fromJson(response.data),
- );
- }
-
- @override
- Future verifyPhoneRegister({
- required VerifyPhoneNumberParams params,
- }) async {
- return _requestHandlerService.handleRequest(
- path: ApiConst.verifyPhone,
- method: RequestMethodEnum.post,
-
- data: {"phoneNumber": params.phoneNumber},
- fromJson: (response) async => SuccessModel.fromJson(response.data),
- );
- }
-
- @override
- Future verifyPhoneResetPassword({
- required VerifyPhoneNumberParams params,
- }) async {
- return _requestHandlerService.handleRequest(
- path: ApiConst.sendCode,
- method: RequestMethodEnum.post,
- data: {"phoneNumber": params.phoneNumber},
- fromJson: (response) async => SuccessModel.fromJson(response.data),
- );
- }
-}
diff --git a/lib/feature/auth/data/models/response/login_response.dart b/lib/feature/auth/data/models/response/login_response.dart
deleted file mode 100644
index a68951c..0000000
--- a/lib/feature/auth/data/models/response/login_response.dart
+++ /dev/null
@@ -1,26 +0,0 @@
-import 'package:equatable/equatable.dart';
-
-class LoginResponseModel extends Equatable {
- final String token;
-
- const LoginResponseModel({required this.token});
-
- factory LoginResponseModel.fromJson(Map json) {
- return LoginResponseModel(
- token: json['token'] as String,
- );
- }
-
- Map toJson() => {
- 'token': token,
- };
-
- LoginResponseModel copyWith({String? token}) {
- return LoginResponseModel(
- token: token ?? this.token,
- );
- }
-
- @override
- List