diff --git a/assets/images/done.png b/assets/images/done.png
new file mode 100644
index 0000000..62226f3
Binary files /dev/null and b/assets/images/done.png differ
diff --git a/assets/svg/lock.svg b/assets/svg/lock.svg
new file mode 100644
index 0000000..cb28e68
--- /dev/null
+++ b/assets/svg/lock.svg
@@ -0,0 +1,9 @@
+
diff --git a/lib/common_ui/resources/my_assets.dart b/lib/common_ui/resources/my_assets.dart
index 6cf99fe..d6a78dc 100644
--- a/lib/common_ui/resources/my_assets.dart
+++ b/lib/common_ui/resources/my_assets.dart
@@ -34,6 +34,7 @@ class MyAssets {
static const String member2 = 'assets/images/member_2.png';
static const String member3 = 'assets/images/member_3.png';
static const String member4 = 'assets/images/member_4.png';
+ static const String done = 'assets/images/done.png';
/// ----- Svg -----
static const String sampleSvg = 'assets/svg/sample.svg';
@@ -52,6 +53,7 @@ class MyAssets {
static const String iconLogout = 'assets/svg/icon_logout.svg';
static const String iconInfo = 'assets/svg/icon_info.svg';
static const String gem = 'assets/svg/gem.svg';
+ static const String lock = 'assets/svg/lock.svg';
/// ----- Audios -----
diff --git a/lib/core/utils/number_format.dart b/lib/core/utils/number_format.dart
new file mode 100644
index 0000000..c594116
--- /dev/null
+++ b/lib/core/utils/number_format.dart
@@ -0,0 +1,11 @@
+extension NumberFormat on double? {
+ num get priceFormat {
+ if (this == null) {
+ return 0;
+ }
+ if (this! % 1 == 0) {
+ return this!.toInt();
+ }
+ return this!;
+ }
+}
diff --git a/lib/core/widgets/button/enum/my_button_type.dart b/lib/core/widgets/button/enum/my_button_type.dart
new file mode 100644
index 0000000..d9ddab5
--- /dev/null
+++ b/lib/core/widgets/button/enum/my_button_type.dart
@@ -0,0 +1,4 @@
+enum MyButtonType {
+ defaultType,
+ activeType,
+}
\ No newline at end of file
diff --git a/lib/core/widgets/button/my_gradient_button.dart b/lib/core/widgets/button/my_gradient_button.dart
index 890c486..9a69c50 100644
--- a/lib/core/widgets/button/my_gradient_button.dart
+++ b/lib/core/widgets/button/my_gradient_button.dart
@@ -1,8 +1,7 @@
import 'package:flutter/material.dart';
-import 'package:shia_game_flutter/common_ui/resources/my_spaces.dart';
-import 'package:shia_game_flutter/core/utils/gap.dart';
-import 'package:shia_game_flutter/core/widgets/container/my_container.dart';
-import 'package:shia_game_flutter/core/widgets/text/gradient_text.dart';
+import 'package:shia_game_flutter/core/widgets/button/enum/my_button_type.dart';
+import 'package:shia_game_flutter/core/widgets/button/styles/active_style.dart';
+import 'package:shia_game_flutter/core/widgets/button/styles/default_style.dart';
class MyGradientButton extends StatelessWidget {
const MyGradientButton({
@@ -11,42 +10,30 @@ class MyGradientButton extends StatelessWidget {
this.title,
this.fontSize,
this.icon,
+ this.type = MyButtonType.defaultType,
});
final VoidCallback? onTap;
final String? title;
final double? fontSize;
final Widget? icon;
+ final MyButtonType type;
@override
Widget build(BuildContext context) {
- return MyContainer(
- height: 32,
- width: 116,
- onTap: onTap,
- borderColor: Color(0XFF6D2ADA),
- borderRadius: BorderRadius.all(Radius.circular(5)),
- gradient: LinearGradient(
- begin: AlignmentDirectional.topStart,
- end: AlignmentDirectional.bottomEnd,
- colors: [Color(0XFF823FEB), Color(0XFF4F09BF)],
+ return switch (type) {
+ MyButtonType.defaultType => DefaultStyle(
+ onTap: onTap,
+ title: title,
+ fontSize: fontSize,
+ icon: icon,
),
- child: Row(
- mainAxisAlignment: MainAxisAlignment.center,
- children: [
- GradientText(
- text: title,
- color: Color(0XFF9C8CC2),
- shadowColor: Color(0xFF1B0D31),
- offset: Offset(0, 1.69),
- fontSize: fontSize ?? 12,
- ),
- if (icon != null) ...{
- MySpaces.s6.gapWidth,
- icon ?? SizedBox.shrink(),
- },
- ],
+ MyButtonType.activeType => ActiveStyle(
+ onTap: onTap,
+ title: title,
+ fontSize: fontSize,
+ icon: icon,
),
- );
+ };
}
}
diff --git a/lib/core/widgets/button/styles/active_style.dart b/lib/core/widgets/button/styles/active_style.dart
new file mode 100644
index 0000000..1ad6b75
--- /dev/null
+++ b/lib/core/widgets/button/styles/active_style.dart
@@ -0,0 +1,58 @@
+import 'package:flutter/material.dart';
+import 'package:shia_game_flutter/common_ui/resources/my_spaces.dart';
+import 'package:shia_game_flutter/core/utils/gap.dart';
+import 'package:shia_game_flutter/core/widgets/container/my_container.dart';
+import 'package:shia_game_flutter/core/widgets/text/gradient_text.dart';
+
+class ActiveStyle extends StatelessWidget {
+ const ActiveStyle({
+ super.key,
+ this.onTap,
+ this.title,
+ this.fontSize,
+ this.icon,
+ });
+
+ final VoidCallback? onTap;
+ final String? title;
+ final double? fontSize;
+ final Widget? icon;
+
+ @override
+ Widget build(BuildContext context) {
+ return MyContainer(
+ height: 32,
+ width: 116,
+ onTap: onTap,
+ borderRadius: BorderRadius.all(Radius.circular(5)),
+ borderGradient: LinearGradient(
+ begin: AlignmentDirectional.centerStart,
+ end: AlignmentDirectional.centerEnd,
+ colors: [
+ Color(0xFF2E7630),
+ Color(0xFF2E7630).withValues(alpha: 0),
+ ]
+ ),
+ color: Color(0XFF172A19),
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.center,
+ children: [
+ GradientText(
+ text: title,
+ gradientColor: [
+ Color(0XFF54C221),
+ Color(0XFF358111),
+ ],
+ shadowColor: Color(0xFF0A1F0F),
+ offset: Offset(0, 1.69),
+ fontSize: fontSize ?? 12,
+ ),
+ if (icon != null) ...{
+ MySpaces.s6.gapWidth,
+ icon ?? SizedBox.shrink(),
+ },
+ ],
+ ),
+ );
+ }
+}
diff --git a/lib/core/widgets/button/styles/default_style.dart b/lib/core/widgets/button/styles/default_style.dart
new file mode 100644
index 0000000..c2fd407
--- /dev/null
+++ b/lib/core/widgets/button/styles/default_style.dart
@@ -0,0 +1,52 @@
+import 'package:flutter/material.dart';
+import 'package:shia_game_flutter/common_ui/resources/my_spaces.dart';
+import 'package:shia_game_flutter/core/utils/gap.dart';
+import 'package:shia_game_flutter/core/widgets/container/my_container.dart';
+import 'package:shia_game_flutter/core/widgets/text/gradient_text.dart';
+
+class DefaultStyle extends StatelessWidget {
+ const DefaultStyle({
+ super.key,
+ this.onTap,
+ this.title,
+ this.fontSize,
+ this.icon,
+ });
+
+ final VoidCallback? onTap;
+ final String? title;
+ final double? fontSize;
+ final Widget? icon;
+
+ @override
+ Widget build(BuildContext context) {
+ return MyContainer(
+ height: 32,
+ width: 116,
+ onTap: onTap,
+ borderColor: Color(0XFF6D2ADA),
+ borderRadius: BorderRadius.all(Radius.circular(5)),
+ gradient: LinearGradient(
+ begin: AlignmentDirectional.topStart,
+ end: AlignmentDirectional.bottomEnd,
+ colors: [Color(0XFF823FEB), Color(0XFF4F09BF)],
+ ),
+ child: Row(
+ mainAxisAlignment: MainAxisAlignment.center,
+ children: [
+ GradientText(
+ text: title,
+ color: Color(0XFF9C8CC2),
+ shadowColor: Color(0xFF1B0D31),
+ offset: Offset(0, 1.69),
+ fontSize: fontSize ?? 12,
+ ),
+ if (icon != null) ...{
+ MySpaces.s6.gapWidth,
+ icon ?? SizedBox.shrink(),
+ },
+ ],
+ ),
+ );
+ }
+}
\ No newline at end of file
diff --git a/lib/core/widgets/text/gradient_text.dart b/lib/core/widgets/text/gradient_text.dart
index 9a244fb..ed0ec13 100644
--- a/lib/core/widgets/text/gradient_text.dart
+++ b/lib/core/widgets/text/gradient_text.dart
@@ -7,6 +7,7 @@ class GradientText extends StatelessWidget {
super.key,
this.text,
this.color = const Color(0xFFFFFFFF),
+ this.gradientColor,
this.fontSize = 14,
this.shadowColor = const Color(0xFF000000),
this.blurRadius = 0,
@@ -17,6 +18,7 @@ class GradientText extends StatelessWidget {
final String? text;
final Color color;
+ final List? gradientColor;
final double? fontSize;
final Color shadowColor;
final double blurRadius;
@@ -31,7 +33,7 @@ class GradientText extends StatelessWidget {
shaderCallback: (bounds) => LinearGradient(
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
- colors: [
+ colors: gradientColor ?? [
context.primaryColor,
context.primaryColor,
color,
diff --git a/lib/features/shop/presentation/ui/widgets/shop_item/shop_item_widget.dart b/lib/features/shop/presentation/ui/widgets/shop_item/shop_item_widget.dart
new file mode 100644
index 0000000..8a87663
--- /dev/null
+++ b/lib/features/shop/presentation/ui/widgets/shop_item/shop_item_widget.dart
@@ -0,0 +1,41 @@
+import 'package:flutter/material.dart';
+import 'package:shia_game_flutter/common_ui/resources/my_spaces.dart';
+import 'package:shia_game_flutter/core/widgets/container/my_container.dart';
+import 'package:shia_game_flutter/features/shop/domain/entity/shop_entity.dart';
+import 'package:shia_game_flutter/features/shop/presentation/ui/widgets/shop_item/styles/book_style.dart';
+import 'package:shia_game_flutter/features/shop/presentation/ui/widgets/shop_item/styles/boost_style.dart';
+import 'package:shia_game_flutter/features/shop/presentation/ui/widgets/shop_item/styles/character_style.dart';
+import 'package:shia_game_flutter/features/shop/presentation/ui/widgets/shop_item/styles/gem_style.dart';
+import 'package:shia_game_flutter/features/shop/presentation/ui/widgets/shop_item/styles/pro_membership_style.dart';
+
+class ShopItemWidget extends StatelessWidget {
+ const ShopItemWidget({
+ super.key,
+ required this.shop,
+ });
+
+ final ShopEntity shop;
+
+ @override
+ Widget build(BuildContext context) {
+ return MyContainer(
+ color: Color(0XFF1B0B38),
+ borderColor: Color(0XFF462A79),
+ borderRadius: BorderRadius.all(Radius.circular(MySpaces.s14)),
+ padding: EdgeInsets.all(MySpaces.s12),
+ child: MyContainer(
+ color: Color(0XFF070D1C),
+ borderRadius: BorderRadius.all(Radius.circular(7)),
+ padding: EdgeInsets.all(7),
+ child: switch(shop.type) {
+ ShopType.gem => GemStyle(shop: shop),
+ ShopType.boost => BoostStyle(shop: shop),
+ ShopType.character => CharacterStyle(shop: shop),
+ ShopType.book => BookStyle(shop: shop),
+ ShopType.proMembership => ProMembershipStyle(shop: shop),
+ _ => GemStyle(shop: shop),
+ },
+ ),
+ );
+ }
+}
diff --git a/lib/features/shop/presentation/ui/widgets/shop_item/styles/book_style.dart b/lib/features/shop/presentation/ui/widgets/shop_item/styles/book_style.dart
new file mode 100644
index 0000000..536347a
--- /dev/null
+++ b/lib/features/shop/presentation/ui/widgets/shop_item/styles/book_style.dart
@@ -0,0 +1,60 @@
+import 'package:flutter/material.dart';
+import 'package:shia_game_flutter/common_ui/resources/my_spaces.dart';
+import 'package:shia_game_flutter/common_ui/resources/my_text_style.dart';
+import 'package:shia_game_flutter/common_ui/theme/my_theme.dart';
+import 'package:shia_game_flutter/core/utils/gap.dart';
+import 'package:shia_game_flutter/core/utils/my_localization.dart';
+import 'package:shia_game_flutter/core/widgets/button/my_gradient_button.dart';
+import 'package:shia_game_flutter/core/widgets/image/my_image.dart';
+import 'package:shia_game_flutter/features/shop/domain/entity/shop_entity.dart';
+
+class BookStyle extends StatelessWidget {
+ const BookStyle({super.key, required this.shop,});
+
+ final ShopEntity shop;
+
+ @override
+ Widget build(BuildContext context) {
+ return SizedBox(
+ height: 230,
+ child: Column(
+ children: [
+ Expanded(
+ child: Container(
+ decoration: BoxDecoration(
+ border: Border.all(width: 2, color: context.primaryColor),
+ borderRadius: BorderRadius.all(Radius.circular(8)),
+ ),
+ child: ClipRRect(
+ borderRadius: BorderRadius.all(Radius.circular(6)),
+ child: MyImage(
+ asset: shop.image ?? '',
+ size: 110,
+ fit: BoxFit.cover,
+ ),
+ ),
+ ),
+ ),
+ MySpaces.s8.gapHeight,
+ SizedBox(
+ width: 110,
+ child: Text(
+ shop.title ?? '',
+ maxLines: 2,
+ overflow: TextOverflow.ellipsis,
+ style: Lexend.semiBold.copyWith(
+ fontSize: 10,
+ ),
+ ),
+ ),
+ MySpaces.s18.gapHeight,
+ MyGradientButton(
+ onTap: () {},
+ title: context.translate.select,
+ fontSize: 20,
+ ),
+ ],
+ ),
+ );
+ }
+}
diff --git a/lib/features/shop/presentation/ui/widgets/shop_item/styles/boost_style.dart b/lib/features/shop/presentation/ui/widgets/shop_item/styles/boost_style.dart
new file mode 100644
index 0000000..6932c51
--- /dev/null
+++ b/lib/features/shop/presentation/ui/widgets/shop_item/styles/boost_style.dart
@@ -0,0 +1,44 @@
+import 'package:flutter/material.dart';
+import 'package:shia_game_flutter/common_ui/resources/my_assets.dart';
+import 'package:shia_game_flutter/core/utils/number_format.dart';
+import 'package:shia_game_flutter/core/widgets/button/my_gradient_button.dart';
+import 'package:shia_game_flutter/core/widgets/image/my_image.dart';
+import 'package:shia_game_flutter/core/widgets/text/gradient_text.dart';
+import 'package:shia_game_flutter/features/shop/domain/entity/shop_entity.dart';
+
+class BoostStyle extends StatelessWidget {
+ const BoostStyle({super.key, required this.shop,});
+
+ final ShopEntity shop;
+
+ @override
+ Widget build(BuildContext context) {
+ return SizedBox(
+ height: 190,
+ child: Column(
+ children: [
+ GradientText(
+ text: '${shop.number} ${shop.title}',
+ fontSize: 18,
+ color: Color(0XFF9C8CC2),
+ shadowColor: Color(0XFF1B0D31),
+ offset: Offset(0, 1.69),
+ ),
+ Expanded(
+ child: MyImage(
+ asset: shop.image ?? '',
+ size: 110,
+ fit: BoxFit.cover,
+ ),
+ ),
+ MyGradientButton(
+ onTap: () {},
+ title: '${shop.price?.priceFormat}',
+ fontSize: 20,
+ icon: MyImage(asset: MyAssets.gem),
+ ),
+ ],
+ ),
+ );
+ }
+}
diff --git a/lib/features/shop/presentation/ui/widgets/shop_item/styles/character_style.dart b/lib/features/shop/presentation/ui/widgets/shop_item/styles/character_style.dart
new file mode 100644
index 0000000..6dc2440
--- /dev/null
+++ b/lib/features/shop/presentation/ui/widgets/shop_item/styles/character_style.dart
@@ -0,0 +1,114 @@
+import 'package:flutter/material.dart';
+import 'package:shia_game_flutter/common_ui/resources/my_assets.dart';
+import 'package:shia_game_flutter/common_ui/resources/my_colors.dart';
+import 'package:shia_game_flutter/common_ui/resources/my_spaces.dart';
+import 'package:shia_game_flutter/core/utils/my_localization.dart';
+import 'package:shia_game_flutter/core/utils/number_format.dart';
+import 'package:shia_game_flutter/core/widgets/button/enum/my_button_type.dart';
+import 'package:shia_game_flutter/core/widgets/button/my_gradient_button.dart';
+import 'package:shia_game_flutter/core/widgets/image/my_image.dart';
+import 'package:shia_game_flutter/features/shop/domain/entity/shop_entity.dart';
+
+class CharacterStyle extends StatelessWidget {
+ const CharacterStyle({super.key, required this.shop});
+
+ final ShopEntity shop;
+
+ @override
+ Widget build(BuildContext context) {
+ return SizedBox(
+ height: 190,
+ child: Column(
+ spacing: MySpaces.s8,
+ children: [
+ Expanded(
+ child: AnimatedContainer(
+ width: 118,
+ duration: Duration(milliseconds: 200),
+ decoration: BoxDecoration(
+ border:Border.all(width: 2, color: Color(0xFFB37EFA)),
+ borderRadius: BorderRadius.all(Radius.circular(8)),
+ boxShadow: shop.isActive == true
+ ? [
+ BoxShadow(
+ color: Color(0xFFB37EFA),
+ spreadRadius: 0,
+ blurRadius: 22,
+ offset: Offset(0, 0),
+ ),
+ ]
+ : null,
+ ),
+ child: ClipRRect(
+ borderRadius: BorderRadius.all(Radius.circular(6)),
+ child: Stack(
+ alignment: AlignmentDirectional.bottomEnd,
+ children: [
+ MyImage(asset: shop.image ?? '', fit: BoxFit.cover, size: 150,),
+ if (shop.isActive == true)
+ PositionedDirectional(
+ end: MySpaces.s8,
+ bottom: MySpaces.s8,
+ child: Stack(
+ clipBehavior: Clip.none,
+ children: [
+ Container(
+ height: 42,
+ width: 42,
+ decoration: BoxDecoration(
+ borderRadius: BorderRadius.all(
+ Radius.circular(5),
+ ),
+ color: MyColors.black.withValues(alpha: 0.8),
+ ),
+ ),
+ PositionedDirectional(
+ top: -0,
+ end: -5,
+ child: MyImage(asset: MyAssets.done),
+ ),
+ ],
+ ),
+ ),
+ if (shop.isBuy == false)
+ PositionedDirectional(
+ end: MySpaces.s8,
+ bottom: MySpaces.s8,
+ child: Container(
+ height: 42,
+ width: 42,
+ padding: EdgeInsets.all(MySpaces.s10),
+ decoration: BoxDecoration(
+ borderRadius: BorderRadius.all(
+ Radius.circular(5),
+ ),
+ color: MyColors.black.withValues(alpha: 0.8),
+ ),
+ child: MyImage(
+ asset: MyAssets.lock,
+ ),
+ ),
+ ),
+ ],
+ ),
+ ),
+ ),
+ ),
+ MyGradientButton(
+ onTap: () {},
+ title: shop.isActive == true
+ ? context.translate.active
+ : shop.isBuy == true
+ ? context.translate.select
+ : '${shop.price?.priceFormat}',
+ icon: shop.isBuy == true ? null : MyImage(asset: MyAssets.gem),
+ fontSize: 20,
+ type: shop.isActive == true
+ ? MyButtonType.activeType
+ : MyButtonType.defaultType,
+ ),
+ ],
+ ),
+ );
+ }
+}
diff --git a/lib/features/shop/presentation/ui/widgets/shop_item/styles/gem_style.dart b/lib/features/shop/presentation/ui/widgets/shop_item/styles/gem_style.dart
new file mode 100644
index 0000000..35e1aa6
--- /dev/null
+++ b/lib/features/shop/presentation/ui/widgets/shop_item/styles/gem_style.dart
@@ -0,0 +1,41 @@
+import 'package:flutter/material.dart';
+import 'package:shia_game_flutter/core/utils/number_format.dart';
+import 'package:shia_game_flutter/core/widgets/button/my_gradient_button.dart';
+import 'package:shia_game_flutter/core/widgets/image/my_image.dart';
+import 'package:shia_game_flutter/core/widgets/text/gradient_text.dart';
+import 'package:shia_game_flutter/features/shop/domain/entity/shop_entity.dart';
+
+class GemStyle extends StatelessWidget {
+ const GemStyle({super.key, required this.shop,});
+
+ final ShopEntity shop;
+
+ @override
+ Widget build(BuildContext context) {
+ return SizedBox(
+ height: 190,
+ child: Column(
+ children: [
+ GradientText(
+ text: '${shop.number} ${shop.title}',
+ fontSize: 18,
+ color: Color(0XFF9C8CC2),
+ shadowColor: Color(0XFF1B0D31),
+ offset: Offset(0, 1.69),
+ ),
+ Expanded(
+ child: MyImage(
+ asset: shop.image ?? '',
+ size: 110,
+ ),
+ ),
+ MyGradientButton(
+ onTap: () {},
+ title: '\$ ${shop.price?.priceFormat}',
+ fontSize: 20,
+ ),
+ ],
+ ),
+ );
+ }
+}
diff --git a/lib/features/shop/presentation/ui/widgets/shop_item/styles/pro_membership_style.dart b/lib/features/shop/presentation/ui/widgets/shop_item/styles/pro_membership_style.dart
new file mode 100644
index 0000000..8943b87
--- /dev/null
+++ b/lib/features/shop/presentation/ui/widgets/shop_item/styles/pro_membership_style.dart
@@ -0,0 +1,41 @@
+import 'package:flutter/material.dart';
+import 'package:shia_game_flutter/core/utils/number_format.dart';
+import 'package:shia_game_flutter/core/widgets/button/my_gradient_button.dart';
+import 'package:shia_game_flutter/core/widgets/image/my_image.dart';
+import 'package:shia_game_flutter/core/widgets/text/gradient_text.dart';
+import 'package:shia_game_flutter/features/shop/domain/entity/shop_entity.dart';
+
+class ProMembershipStyle extends StatelessWidget {
+ const ProMembershipStyle({super.key, required this.shop,});
+
+ final ShopEntity shop;
+
+ @override
+ Widget build(BuildContext context) {
+ return SizedBox(
+ height: 190,
+ child: Column(
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
+ children: [
+ GradientText(
+ text: '${shop.number} ${shop.title}',
+ fontSize: 18,
+ color: Color(0XFF9C8CC2),
+ shadowColor: Color(0XFF1B0D31),
+ offset: Offset(0, 1.69),
+ ),
+ MyImage(
+ asset: shop.image ?? '',
+ size: 90,
+ fit: BoxFit.contain,
+ ),
+ MyGradientButton(
+ onTap: () {},
+ title: '\$ ${shop.price?.priceFormat}',
+ fontSize: 20,
+ ),
+ ],
+ ),
+ );
+ }
+}
diff --git a/lib/features/shop/presentation/ui/widgets/shop_item_widget.dart b/lib/features/shop/presentation/ui/widgets/shop_item_widget.dart
deleted file mode 100644
index 4293789..0000000
--- a/lib/features/shop/presentation/ui/widgets/shop_item_widget.dart
+++ /dev/null
@@ -1,54 +0,0 @@
-import 'package:flutter/material.dart';
-import 'package:shia_game_flutter/common_ui/resources/my_spaces.dart';
-import 'package:shia_game_flutter/core/widgets/button/my_gradient_button.dart';
-import 'package:shia_game_flutter/core/widgets/container/my_container.dart';
-import 'package:shia_game_flutter/core/widgets/image/my_image.dart';
-import 'package:shia_game_flutter/core/widgets/text/gradient_text.dart';
-import 'package:shia_game_flutter/features/shop/domain/entity/shop_entity.dart';
-
-class ShopItemWidget extends StatelessWidget {
- const ShopItemWidget({
- super.key,
- required this.shop,
- });
-
- final ShopEntity shop;
-
- @override
- Widget build(BuildContext context) {
- return MyContainer(
- height: 213,
- color: Color(0XFF1B0B38),
- borderColor: Color(0XFF462A79),
- borderRadius: BorderRadius.all(Radius.circular(MySpaces.s14)),
- padding: EdgeInsets.all(MySpaces.s12),
- child: MyContainer(
- color: Color(0XFF070D1C),
- borderRadius: BorderRadius.all(Radius.circular(7)),
- padding: EdgeInsets.all(7),
- child: Column(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- GradientText(
- text: '270 Gem',
- fontSize: 18,
- color: Color(0XFF9C8CC2),
- shadowColor: Color(0XFF1B0D31),
- offset: Offset(0, 1.69),
- ),
- MyImage(
- asset: shop.image ?? '',
- size: 80,
- fit: BoxFit.contain,
- ),
- MyGradientButton(
- onTap: () {},
- title: '\$ 12',
- fontSize: 20,
- ),
- ],
- ),
- ),
- );
- }
-}
diff --git a/lib/features/shop/presentation/ui/widgets/shop_package_entity.dart b/lib/features/shop/presentation/ui/widgets/shop_package_entity.dart
index 99d35e1..fa8dca4 100644
--- a/lib/features/shop/presentation/ui/widgets/shop_package_entity.dart
+++ b/lib/features/shop/presentation/ui/widgets/shop_package_entity.dart
@@ -8,7 +8,7 @@ import 'package:shia_game_flutter/core/widgets/image/my_image.dart';
import 'package:shia_game_flutter/core/widgets/text/gradient_text.dart';
import 'package:shia_game_flutter/features/shop/domain/entity/shop_entity.dart';
import 'package:shia_game_flutter/features/shop/domain/entity/shop_package_entity.dart';
-import 'package:shia_game_flutter/features/shop/presentation/ui/widgets/shop_item_widget.dart';
+import 'package:shia_game_flutter/features/shop/presentation/ui/widgets/shop_item/shop_item_widget.dart';
class ShopPackageWidget extends StatelessWidget {
const ShopPackageWidget({super.key, required this.shopPackage,});
diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb
index e32b6ee..dbb8f6e 100644
--- a/lib/l10n/app_en.arb
+++ b/lib/l10n/app_en.arb
@@ -18,5 +18,7 @@
"ongoing": "ongoing",
"online": "online",
"battle_cast": "Battle Cast",
- "no_one_online": "No one's online"
+ "no_one_online": "No one's online",
+ "active": "Active",
+ "select": "Select"
}
\ No newline at end of file
diff --git a/lib/l10n/app_localizations.dart b/lib/l10n/app_localizations.dart
index 71f86c3..b782c96 100644
--- a/lib/l10n/app_localizations.dart
+++ b/lib/l10n/app_localizations.dart
@@ -207,6 +207,18 @@ abstract class AppLocalizations {
/// In en, this message translates to:
/// **'No one\'s online'**
String get no_one_online;
+
+ /// No description provided for @active.
+ ///
+ /// In en, this message translates to:
+ /// **'Active'**
+ String get active;
+
+ /// No description provided for @select.
+ ///
+ /// In en, this message translates to:
+ /// **'Select'**
+ String get select;
}
class _AppLocalizationsDelegate
diff --git a/lib/l10n/app_localizations_en.dart b/lib/l10n/app_localizations_en.dart
index 6847d8a..a3f8e1d 100644
--- a/lib/l10n/app_localizations_en.dart
+++ b/lib/l10n/app_localizations_en.dart
@@ -64,4 +64,10 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get no_one_online => 'No one\'s online';
+
+ @override
+ String get active => 'Active';
+
+ @override
+ String get select => 'Select';
}