feat:Baskets empty page ui done

This commit is contained in:
jahongireshonqulov
2025-10-24 20:17:59 +05:00
parent ffbc153b55
commit 30f190aab9
12 changed files with 242 additions and 4 deletions

View File

@@ -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

View File

@@ -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';
}

View File

@@ -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 => 'Заказы';
}

View File

@@ -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 qoshing';
@override
String get basketHint =>
'Restorandan yoki do\'kondan mahsulot qoshsangiz, savatingiz shu yerda paydo boladi.';
@override
String get startShopping => 'Xaridni boshlash';
@override
String get orders => 'Buyurtmalar';
}

View File

@@ -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";
}

View File

@@ -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()])),
);
}
}

View File

@@ -0,0 +1,46 @@
import '../../../../../../food_delivery_client.dart';
class WBasketEmpty extends StatelessWidget {
const WBasketEmpty({super.key});
@override
Widget build(BuildContext context) {
return BlocBuilder<MainBloc, MainState>(
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<MainBloc>().add(MainEvent.loaded(0));
},
height: 45,
width: 250,
borderRadius: 99,
),
],
);
},
).paddingSymmetric(horizontal: 35);
}
}

View File

@@ -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);
}
}