diff --git a/assets/images/book_1.jpg b/assets/images/book_1.jpg
new file mode 100644
index 0000000..26ce944
Binary files /dev/null and b/assets/images/book_1.jpg differ
diff --git a/assets/images/book_2.jpg b/assets/images/book_2.jpg
new file mode 100644
index 0000000..5b99c7c
Binary files /dev/null and b/assets/images/book_2.jpg differ
diff --git a/assets/images/book_3.png b/assets/images/book_3.png
new file mode 100644
index 0000000..c734a28
Binary files /dev/null and b/assets/images/book_3.png differ
diff --git a/assets/images/boost_1.png b/assets/images/boost_1.png
new file mode 100644
index 0000000..eb9efec
Binary files /dev/null and b/assets/images/boost_1.png differ
diff --git a/assets/images/boost_2.png b/assets/images/boost_2.png
new file mode 100644
index 0000000..8026adb
Binary files /dev/null and b/assets/images/boost_2.png differ
diff --git a/assets/images/boost_3.png b/assets/images/boost_3.png
new file mode 100644
index 0000000..bd8d58d
Binary files /dev/null and b/assets/images/boost_3.png differ
diff --git a/assets/images/boost_4.png b/assets/images/boost_4.png
new file mode 100644
index 0000000..796cd6b
Binary files /dev/null and b/assets/images/boost_4.png differ
diff --git a/assets/images/character_1.png b/assets/images/character_1.png
new file mode 100644
index 0000000..4d1e1d6
Binary files /dev/null and b/assets/images/character_1.png differ
diff --git a/assets/images/character_2.png b/assets/images/character_2.png
new file mode 100644
index 0000000..5814b66
Binary files /dev/null and b/assets/images/character_2.png differ
diff --git a/assets/images/character_3.png b/assets/images/character_3.png
new file mode 100644
index 0000000..bd93e19
Binary files /dev/null and b/assets/images/character_3.png differ
diff --git a/assets/images/gem_1.png b/assets/images/gem_1.png
new file mode 100644
index 0000000..550cf77
Binary files /dev/null and b/assets/images/gem_1.png differ
diff --git a/assets/images/gem_2.png b/assets/images/gem_2.png
new file mode 100644
index 0000000..ed98414
Binary files /dev/null and b/assets/images/gem_2.png differ
diff --git a/assets/images/gem_3.png b/assets/images/gem_3.png
new file mode 100644
index 0000000..16253a1
Binary files /dev/null and b/assets/images/gem_3.png differ
diff --git a/assets/images/gem_4.png b/assets/images/gem_4.png
new file mode 100644
index 0000000..9b47010
Binary files /dev/null and b/assets/images/gem_4.png differ
diff --git a/assets/images/member_1.png b/assets/images/member_1.png
new file mode 100644
index 0000000..d549a03
Binary files /dev/null and b/assets/images/member_1.png differ
diff --git a/assets/images/member_2.png b/assets/images/member_2.png
new file mode 100644
index 0000000..0e5cd98
Binary files /dev/null and b/assets/images/member_2.png differ
diff --git a/assets/images/member_3.png b/assets/images/member_3.png
new file mode 100644
index 0000000..4b2ae22
Binary files /dev/null and b/assets/images/member_3.png differ
diff --git a/assets/images/member_4.png b/assets/images/member_4.png
new file mode 100644
index 0000000..b8bee5a
Binary files /dev/null and b/assets/images/member_4.png differ
diff --git a/assets/svg/gem.svg b/assets/svg/gem.svg
new file mode 100644
index 0000000..f5e9a53
--- /dev/null
+++ b/assets/svg/gem.svg
@@ -0,0 +1,51 @@
+
diff --git a/assets/svg/icon_info.svg b/assets/svg/icon_info.svg
new file mode 100644
index 0000000..ddc1e96
--- /dev/null
+++ b/assets/svg/icon_info.svg
@@ -0,0 +1,10 @@
+
diff --git a/lib/common_ui/resources/my_assets.dart b/lib/common_ui/resources/my_assets.dart
index f3092c6..6cf99fe 100644
--- a/lib/common_ui/resources/my_assets.dart
+++ b/lib/common_ui/resources/my_assets.dart
@@ -16,6 +16,24 @@ class MyAssets {
static const String mic = 'assets/images/mic.png';
static const String micBLur = 'assets/images/mic_blur.png';
static const String sampleAvatar = 'assets/images/sample_avatar.png';
+ static const String gem1 = 'assets/images/gem_1.png';
+ static const String gem2 = 'assets/images/gem_2.png';
+ static const String gem3 = 'assets/images/gem_3.png';
+ static const String gem4 = 'assets/images/gem_4.png';
+ static const String book1 = 'assets/images/book_1.jpg';
+ static const String book2 = 'assets/images/book_2.jpg';
+ static const String book3 = 'assets/images/book_3.png';
+ static const String boost1 = 'assets/images/boost_1.png';
+ static const String boost2 = 'assets/images/boost_2.png';
+ static const String boost3 = 'assets/images/boost_3.png';
+ static const String boost4 = 'assets/images/boost_4.png';
+ static const String character1 = 'assets/images/character_1.png';
+ static const String character2 = 'assets/images/character_2.png';
+ static const String character3 = 'assets/images/character_3.png';
+ static const String member1 = 'assets/images/member_1.png';
+ 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';
/// ----- Svg -----
static const String sampleSvg = 'assets/svg/sample.svg';
@@ -32,6 +50,9 @@ class MyAssets {
static const String introStar = 'assets/svg/intro_star.svg';
static const String iconLocation = 'assets/svg/icon_location.svg';
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';
+
/// ----- Audios -----
static const String sampleAudio = 'assets/audios/sample.mp3';
diff --git a/lib/core/widgets/background/my_background.dart b/lib/core/widgets/background/my_background.dart
index 7252a15..54c5604 100644
--- a/lib/core/widgets/background/my_background.dart
+++ b/lib/core/widgets/background/my_background.dart
@@ -3,9 +3,10 @@ import 'package:shia_game_flutter/common_ui/resources/my_spaces.dart';
import 'package:shia_game_flutter/common_ui/theme/my_theme.dart';
class MyBackground extends StatelessWidget {
- const MyBackground({super.key, required this.child});
+ const MyBackground({super.key, this.child, this.listChild});
- final Widget child;
+ final Widget? child;
+ final Widget? listChild;
@override
Widget build(BuildContext context) {
@@ -16,7 +17,7 @@ class MyBackground extends StatelessWidget {
colors: [const Color(0xFF321A6D), context.backgroundColor],
),
),
- child: SingleChildScrollView(
+ child: listChild ?? SingleChildScrollView(
padding: EdgeInsets.symmetric(horizontal: MySpaces.s30),
child: child,
),
diff --git a/lib/core/widgets/button/my_gradient_button.dart b/lib/core/widgets/button/my_gradient_button.dart
index 3ce7d78..890c486 100644
--- a/lib/core/widgets/button/my_gradient_button.dart
+++ b/lib/core/widgets/button/my_gradient_button.dart
@@ -1,12 +1,22 @@
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 MyGradientButton extends StatelessWidget {
- const MyGradientButton({super.key, this.onTap, this.title});
+ const MyGradientButton({
+ 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) {
@@ -21,12 +31,21 @@ class MyGradientButton extends StatelessWidget {
end: AlignmentDirectional.bottomEnd,
colors: [Color(0XFF823FEB), Color(0XFF4F09BF)],
),
- child: GradientText(
- text: title,
- color: Color(0XFF9C8CC2),
- shadowColor: Color(0xFF1B0D31),
- offset: Offset(0, 1.69),
- fontSize: 12,
+ 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(),
+ },
+ ],
),
);
}
diff --git a/lib/core/widgets/text/gradient_text.dart b/lib/core/widgets/text/gradient_text.dart
index e9da190..9a244fb 100644
--- a/lib/core/widgets/text/gradient_text.dart
+++ b/lib/core/widgets/text/gradient_text.dart
@@ -12,6 +12,7 @@ class GradientText extends StatelessWidget {
this.blurRadius = 0,
this.spreadRadius = 0,
this.offset = Offset.zero,
+ this.textAlign,
});
final String? text;
@@ -21,6 +22,7 @@ class GradientText extends StatelessWidget {
final double blurRadius;
final double spreadRadius;
final Offset offset;
+ final TextAlign? textAlign;
@override
Widget build(BuildContext context) {
@@ -37,6 +39,8 @@ class GradientText extends StatelessWidget {
).createShader(bounds),
child: Text(
text ?? '',
+ textAlign: textAlign,
+ maxLines: 1,
style: Lexend.extraBold.copyWith(
fontSize: fontSize,
shadows: [
diff --git a/lib/features/shop/data/model/shop_model.dart b/lib/features/shop/data/model/shop_model.dart
index 3f3a933..362e5df 100644
--- a/lib/features/shop/data/model/shop_model.dart
+++ b/lib/features/shop/data/model/shop_model.dart
@@ -1,13 +1,9 @@
import 'package:shia_game_flutter/features/shop/domain/entity/shop_entity.dart';
class ShopModel extends ShopEntity {
- const ShopModel({
- super.id,
- });
+ const ShopModel();
factory ShopModel.fromJson(Map json) {
- return ShopModel(
- id: json['id'],
- );
+ return ShopModel();
}
}
diff --git a/lib/features/shop/domain/entity/book_entity.dart b/lib/features/shop/domain/entity/book_entity.dart
new file mode 100644
index 0000000..8f8f1b4
--- /dev/null
+++ b/lib/features/shop/domain/entity/book_entity.dart
@@ -0,0 +1,9 @@
+import 'package:shia_game_flutter/features/shop/domain/entity/shop_entity.dart';
+
+class BookEntity extends ShopEntity {
+ const BookEntity({
+ super.type = ShopType.book,
+ super.image,
+ super.title,
+ });
+}
diff --git a/lib/features/shop/domain/entity/boost_entity.dart b/lib/features/shop/domain/entity/boost_entity.dart
new file mode 100644
index 0000000..3538fb8
--- /dev/null
+++ b/lib/features/shop/domain/entity/boost_entity.dart
@@ -0,0 +1,11 @@
+import 'package:shia_game_flutter/features/shop/domain/entity/shop_entity.dart';
+
+class BoostEntity extends ShopEntity {
+ const BoostEntity({
+ super.type = ShopType.boost,
+ super.number,
+ super.price,
+ super.image,
+ super.title = 'Boost',
+ });
+}
diff --git a/lib/features/shop/domain/entity/character_entity.dart b/lib/features/shop/domain/entity/character_entity.dart
new file mode 100644
index 0000000..2edf2bc
--- /dev/null
+++ b/lib/features/shop/domain/entity/character_entity.dart
@@ -0,0 +1,11 @@
+import 'package:shia_game_flutter/features/shop/domain/entity/shop_entity.dart';
+
+class CharacterEntity extends ShopEntity {
+ const CharacterEntity({
+ super.type = ShopType.character,
+ super.image,
+ super.isActive,
+ super.isBuy,
+ super.price,
+ });
+}
diff --git a/lib/features/shop/domain/entity/gem_entity.dart b/lib/features/shop/domain/entity/gem_entity.dart
new file mode 100644
index 0000000..6cbecbc
--- /dev/null
+++ b/lib/features/shop/domain/entity/gem_entity.dart
@@ -0,0 +1,11 @@
+import 'package:shia_game_flutter/features/shop/domain/entity/shop_entity.dart';
+
+class GemEntity extends ShopEntity {
+ const GemEntity({
+ super.type = ShopType.gem,
+ super.image,
+ super.price,
+ super.title = 'Gems',
+ super.number,
+ });
+}
diff --git a/lib/features/shop/domain/entity/pro_membership_entity.dart b/lib/features/shop/domain/entity/pro_membership_entity.dart
new file mode 100644
index 0000000..821fbd6
--- /dev/null
+++ b/lib/features/shop/domain/entity/pro_membership_entity.dart
@@ -0,0 +1,11 @@
+import 'package:shia_game_flutter/features/shop/domain/entity/shop_entity.dart';
+
+class ProMembershipEntity extends ShopEntity {
+ const ProMembershipEntity({
+ super.type = ShopType.proMembership,
+ super.image,
+ super.price,
+ super.title = 'Month',
+ super.number,
+ });
+}
diff --git a/lib/features/shop/domain/entity/shop_entity.dart b/lib/features/shop/domain/entity/shop_entity.dart
index 1e453aa..527dd6b 100644
--- a/lib/features/shop/domain/entity/shop_entity.dart
+++ b/lib/features/shop/domain/entity/shop_entity.dart
@@ -1,14 +1,42 @@
import 'package:equatable/equatable.dart';
+enum ShopType {
+ gem,
+ boost,
+ character,
+ book,
+ proMembership,
+}
+
class ShopEntity extends Equatable {
- final int? id;
+ final ShopType? type;
+ final String? image;
+ final int? number;
+ final String? title;
+ final double? price;
+ final bool? isActive;
+ final bool? isBuy;
+
+
const ShopEntity({
- this.id,
+ this.type,
+ this.image,
+ this.number,
+ this.title,
+ this.price,
+ this.isActive,
+ this.isBuy,
});
@override
List