diff --git a/assets/icons/ic_carts.svg b/assets/icons/ic_carts.svg
new file mode 100644
index 0000000..b259e6c
--- /dev/null
+++ b/assets/icons/ic_carts.svg
@@ -0,0 +1,45 @@
+
diff --git a/assets/translations/app_en.arb b/assets/translations/app_en.arb
index 91bb122..41ded29 100644
--- a/assets/translations/app_en.arb
+++ b/assets/translations/app_en.arb
@@ -111,5 +111,11 @@
}
}
- }
+ },
+ "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"
+
}
\ No newline at end of file
diff --git a/assets/translations/app_ru.arb b/assets/translations/app_ru.arb
index dce867d..9a62463 100644
--- a/assets/translations/app_ru.arb
+++ b/assets/translations/app_ru.arb
@@ -107,7 +107,13 @@
"spendAndSave@placeholders": {
"spend": {},
"save": {}
- }
+ },
+ "cartsTitle": "Корзины",
+ "addItemsStartBasket": "Добавьте товары, чтобы создать корзину",
+ "basketHint": "Когда вы добавите товары из ресторана или магазина, ваша корзина появится здесь.",
+ "startShopping": "Начать покупки",
+ "orders": "Заказы"
+
diff --git a/assets/translations/app_uz.arb b/assets/translations/app_uz.arb
index a837ad0..7464089 100644
--- a/assets/translations/app_uz.arb
+++ b/assets/translations/app_uz.arb
@@ -107,7 +107,12 @@
"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"
diff --git a/lib/core/l10n/app_localizations.dart b/lib/core/l10n/app_localizations.dart
index c4a1d5b..b199548 100644
--- a/lib/core/l10n/app_localizations.dart
+++ b/lib/core/l10n/app_localizations.dart
@@ -525,6 +525,36 @@ abstract class AppLocalizations {
/// 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;
}
class _AppLocalizationsDelegate
diff --git a/lib/core/l10n/app_localizations_en.dart b/lib/core/l10n/app_localizations_en.dart
index 572a4f8..d8bf109 100644
--- a/lib/core/l10n/app_localizations_en.dart
+++ b/lib/core/l10n/app_localizations_en.dart
@@ -231,4 +231,20 @@ class AppLocalizationsEn extends AppLocalizations {
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';
}
diff --git a/lib/core/l10n/app_localizations_ru.dart b/lib/core/l10n/app_localizations_ru.dart
index ad6200a..a609f38 100644
--- a/lib/core/l10n/app_localizations_ru.dart
+++ b/lib/core/l10n/app_localizations_ru.dart
@@ -232,4 +232,20 @@ class AppLocalizationsRu extends AppLocalizations {
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 => 'Заказы';
}
diff --git a/lib/core/l10n/app_localizations_uz.dart b/lib/core/l10n/app_localizations_uz.dart
index bba85ea..0bd4af8 100644
--- a/lib/core/l10n/app_localizations_uz.dart
+++ b/lib/core/l10n/app_localizations_uz.dart
@@ -232,4 +232,20 @@ class AppLocalizationsUz extends AppLocalizations {
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';
}
diff --git a/lib/core/theme/app_icons.dart b/lib/core/theme/app_icons.dart
index 665c8bb..14e3dd1 100644
--- a/lib/core/theme/app_icons.dart
+++ b/lib/core/theme/app_icons.dart
@@ -23,6 +23,7 @@ abstract class AppIcons {
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";
@@ -44,4 +45,6 @@ abstract class AppIcons {
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";
+
}
diff --git a/lib/feature/basket/presentation/pages/basket_page/basket_page.dart b/lib/feature/basket/presentation/pages/basket_page/basket_page.dart
index 1cbaca7..5c4b5e7 100644
--- a/lib/feature/basket/presentation/pages/basket_page/basket_page.dart
+++ b/lib/feature/basket/presentation/pages/basket_page/basket_page.dart
@@ -1,3 +1,6 @@
+import 'package:food_delivery_client/feature/basket/presentation/pages/basket_page/widgets/w_basket_empty.dart';
+import 'package:food_delivery_client/feature/basket/presentation/pages/basket_page/widgets/w_basket_header.dart';
+
import '../../../../../food_delivery_client.dart';
class BasketPage extends StatelessWidget {
@@ -6,7 +9,9 @@ class BasketPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return WLayout(
- child: Scaffold(body: Center(child: Text(context.loc.useYourTAxiAccount))),
+ child: Scaffold(body: Column(children: [
+ WBasketHeader(),
+ WBasketEmpty()])),
);
}
}
diff --git a/lib/feature/basket/presentation/pages/basket_page/widgets/w_basket_empty.dart b/lib/feature/basket/presentation/pages/basket_page/widgets/w_basket_empty.dart
new file mode 100644
index 0000000..a74136f
--- /dev/null
+++ b/lib/feature/basket/presentation/pages/basket_page/widgets/w_basket_empty.dart
@@ -0,0 +1,46 @@
+import '../../../../../../food_delivery_client.dart';
+
+class WBasketEmpty extends StatelessWidget {
+ const WBasketEmpty({super.key});
+
+ @override
+ Widget build(BuildContext context) {
+ return BlocBuilder(
+ builder: (context, state) {
+ return Column(
+ crossAxisAlignment: CrossAxisAlignment.center,
+ mainAxisAlignment: MainAxisAlignment.start,
+ children: [
+ 70.verticalSpace,
+ SvgPicture.asset(AppIcons.icEmptyBasket),
+ Text(
+ context.loc.addItemsStartBasket,
+ textAlign: TextAlign.center,
+ style: AppTextStyles.size20Medium,
+ ),
+ 12.verticalSpace,
+ Text(
+ context.loc.basketHint,
+ textAlign: TextAlign.center,
+ style: AppTextStyles.size16Regular.copyWith(
+ color: AppColors.c545454,
+ height: 24 / 16,
+ ),
+ ),
+ 38.verticalSpace,
+ AppButton(
+ name: context.loc.startShopping,
+ onPressed: () {
+ context.read().add(MainEvent.loaded(0));
+ },
+ height: 45,
+ width: 250,
+
+ borderRadius: 99,
+ ),
+ ],
+ );
+ },
+ ).paddingSymmetric(horizontal: 35);
+ }
+}
diff --git a/lib/feature/basket/presentation/pages/basket_page/widgets/w_basket_header.dart b/lib/feature/basket/presentation/pages/basket_page/widgets/w_basket_header.dart
new file mode 100644
index 0000000..9359912
--- /dev/null
+++ b/lib/feature/basket/presentation/pages/basket_page/widgets/w_basket_header.dart
@@ -0,0 +1,44 @@
+import '../../../../../../food_delivery_client.dart';
+
+class WBasketHeader extends StatelessWidget {
+ const WBasketHeader({super.key});
+
+ @override
+ Widget build(BuildContext context) {
+ return Column(
+ mainAxisSize: MainAxisSize.max,
+ children: [
+ Align(
+ alignment: AlignmentGeometry.centerRight,
+ child: InkWell(
+ borderRadius: BorderRadius.circular(99),
+ onTap: () {},
+ child: Ink(
+ decoration: BoxDecoration(
+ color: AppColors.cEEEEEE,
+ borderRadius: BorderRadius.circular(99),
+ ),
+ child: Row(
+ spacing: 10,
+ mainAxisSize: MainAxisSize.min,
+ children: [
+ Image.asset(
+ AppIcons.icOrders,
+ height: 20,
+ width: 20,
+ fit: BoxFit.cover,
+ ),
+ Text(context.loc.orders, style: AppTextStyles.size14Medium),
+ ],
+ ).paddingSymmetric(vertical: 10, horizontal: 16),
+ ),
+ ),
+ ),
+ Align(
+ alignment: AlignmentGeometry.centerLeft,
+ child: Text(context.loc.cartsTitle, style: AppTextStyles.size36Bold),
+ ),
+ ],
+ ).paddingSymmetric(horizontal: 15);
+ }
+}