diff --git a/assets/images/add_background.png b/assets/images/add_background.png new file mode 100644 index 0000000..eff2d70 Binary files /dev/null and b/assets/images/add_background.png differ diff --git a/assets/images/cup.png b/assets/images/cup.png new file mode 100644 index 0000000..16de293 Binary files /dev/null and b/assets/images/cup.png differ diff --git a/assets/images/icon_crown.png b/assets/images/icon_crown.png new file mode 100644 index 0000000..2c24200 Binary files /dev/null and b/assets/images/icon_crown.png differ diff --git a/assets/images/mic.png b/assets/images/mic.png new file mode 100644 index 0000000..ca96910 Binary files /dev/null and b/assets/images/mic.png differ diff --git a/assets/images/mic_blur.png b/assets/images/mic_blur.png new file mode 100644 index 0000000..cd6367e Binary files /dev/null and b/assets/images/mic_blur.png differ diff --git a/assets/images/shia_mind_group.png b/assets/images/shia_mind_group.png new file mode 100644 index 0000000..b47c20e Binary files /dev/null and b/assets/images/shia_mind_group.png differ diff --git a/assets/svg/friend_battle.svg b/assets/svg/friend_battle.svg new file mode 100644 index 0000000..aa8575a --- /dev/null +++ b/assets/svg/friend_battle.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/svg/icon_clock.svg b/assets/svg/icon_clock.svg new file mode 100644 index 0000000..f657f87 --- /dev/null +++ b/assets/svg/icon_clock.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/svg/medal.svg b/assets/svg/medal.svg new file mode 100644 index 0000000..8b4a41a --- /dev/null +++ b/assets/svg/medal.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/lib/common_ui/resources/my_assets.dart b/lib/common_ui/resources/my_assets.dart index 3f798a8..6edec51 100644 --- a/lib/common_ui/resources/my_assets.dart +++ b/lib/common_ui/resources/my_assets.dart @@ -10,6 +10,12 @@ class MyAssets { static const String iconProfile = 'assets/images/icon_profile.png'; static const String iconDiamond = 'assets/images/icon_diamond.png'; static const String iconFlash = 'assets/images/icon_flash.png'; + static const String iconCrown = 'assets/images/icon_crown.png'; + static const String shiaMindGroup = 'assets/images/shia_mind_group.png'; + static const String cup = 'assets/images/cup.png'; + static const String addBackground = 'assets/images/add_background.png'; + static const String mic = 'assets/images/mic.png'; + static const String micBLur = 'assets/images/mic_blur.png'; /// ----- Svg ----- static const String sampleSvg = 'assets/svg/sample.svg'; @@ -19,6 +25,10 @@ class MyAssets { static const String iconPlus = 'assets/svg/icon_plus.svg'; static const String iconSetting = 'assets/svg/icon_setting.svg'; static const String iconShare = 'assets/svg/icon_share.svg'; + static const String iconClock = 'assets/svg/icon_clock.svg'; + static const String medal = 'assets/svg/medal.svg'; + static const String friendBattle = 'assets/svg/friend_battle.svg'; + /// ----- Audios ----- static const String sampleAudio = 'assets/audios/sample.mp3'; @@ -32,5 +42,8 @@ class MyAssets { question, iconProfile, iconDiamond, + iconFlash, + iconCrown, + shiaMindGroup, ]; } diff --git a/lib/core/widgets/bottom_nav_bar/bottom_nav_bar.dart b/lib/core/widgets/bottom_nav_bar/bottom_nav_bar.dart index 72305b8..2f9a46c 100644 --- a/lib/core/widgets/bottom_nav_bar/bottom_nav_bar.dart +++ b/lib/core/widgets/bottom_nav_bar/bottom_nav_bar.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:get/get_state_manager/src/rx_flutter/rx_obx_widget.dart'; import 'package:get/get_state_manager/src/simple/get_view.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/core/widgets/bottom_nav_bar/styles/bottom_nav_bar_item.dart'; import 'package:shia_game_flutter/core/widgets/bottom_nav_bar/styles/bottom_nav_bar_profile_item.dart'; @@ -12,6 +13,10 @@ class BottomNavBar extends GetView { @override Widget build(BuildContext context) { return Container( + clipBehavior: Clip.none, + padding: EdgeInsets.symmetric( + horizontal: MySpaces.s30 + ), decoration: BoxDecoration( gradient: RadialGradient( radius: 2.5, diff --git a/lib/core/widgets/container/gradient_container.dart b/lib/core/widgets/container/gradient_container.dart new file mode 100644 index 0000000..f7a41d8 --- /dev/null +++ b/lib/core/widgets/container/gradient_container.dart @@ -0,0 +1,78 @@ +import 'package:flutter/material.dart'; + +class GradientContainer extends StatelessWidget { + const GradientContainer({ + super.key, + this.width, + this.height, + this.margin, + this.padding, + this.shapeBorder, + this.boxShape, + this.borderGradient, + this.borderRadius, + this.boxShadow, + this.color, + this.child, + this.image, + this.gradient, + this.borderColor, + }); + + final double? width; + final double? height; + final EdgeInsetsGeometry? margin; + final EdgeInsetsGeometry? padding; + final ShapeBorder? shapeBorder; + final BoxShape? boxShape; + final Gradient? borderGradient; + final Gradient? gradient; + final BorderRadiusGeometry? borderRadius; + final List? boxShadow; + final Color? color; + final Color? borderColor; + final Widget? child; + final DecorationImage? image; + + @override + Widget build(BuildContext context) { + return Container( + padding: EdgeInsets.all(1), + width: width, + height: height, + margin: margin, + decoration: shapeBorder == null + ? BoxDecoration( + shape: boxShape ?? BoxShape.rectangle, + gradient: borderGradient, + borderRadius: borderRadius, + boxShadow: boxShadow, + color: borderColor, + ) + : ShapeDecoration( + shape: shapeBorder!, + gradient: borderGradient, + shadows: boxShadow, + color: borderColor, + ), + child: Container( + padding: padding, + decoration: shapeBorder == null + ? BoxDecoration( + shape: boxShape ?? BoxShape.rectangle, + gradient: gradient, + borderRadius: borderRadius, + color: color, + image: image, + ) + : ShapeDecoration( + shape: shapeBorder!, + gradient: gradient, + color: color, + image: image, + ), + child: child, + ), + ); + } +} diff --git a/lib/features/home/presentation/pages/home_page.dart b/lib/features/home/presentation/pages/home_page.dart index 6424618..669fd8e 100644 --- a/lib/features/home/presentation/pages/home_page.dart +++ b/lib/features/home/presentation/pages/home_page.dart @@ -1,9 +1,17 @@ -import 'package:flutter/material.dart'; +import 'package:flutter/material.dart' hide BoxShadow, BoxDecoration; import 'package:get/get.dart'; +import 'package:shia_game_flutter/common_ui/resources/my_assets.dart'; +import 'package:shia_game_flutter/common_ui/resources/my_spaces.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/widgets/app_bar/home_app_bar.dart'; import 'package:shia_game_flutter/core/widgets/bottom_nav_bar/bottom_nav_bar.dart'; +import 'package:shia_game_flutter/core/widgets/image/my_image.dart'; import 'package:shia_game_flutter/features/home/presentation/controller/home_controller.dart'; +import 'package:shia_game_flutter/features/home/presentation/pages/widgets/home_battle_cast.dart'; +import 'package:shia_game_flutter/features/home/presentation/pages/widgets/home_battle_league.dart'; +import 'package:shia_game_flutter/features/home/presentation/pages/widgets/home_custom_widget.dart'; +import 'package:shia_game_flutter/features/home/presentation/pages/widgets/home_membership.dart'; class HomePage extends GetView { const HomePage({super.key}); @@ -14,6 +22,45 @@ class HomePage extends GetView { backgroundColor: context.backgroundColor, bottomNavigationBar: BottomNavBar(), appBar: HomeAppBar(), + body: SingleChildScrollView( + padding: EdgeInsets.symmetric(horizontal: MySpaces.s32), + child: Column( + children: [ + MySpaces.s28.gapHeight, + MyImage(asset: MyAssets.shiaMindGroup), + MySpaces.s40.gapHeight, + HomeMembership(), + HomeBattleLeague(), + MySpaces.s20.gapHeight, + _customWidgets(), + MySpaces.s20.gapHeight, + HomeBattleCast(), + ], + ), + ), + ); + } + + Widget _customWidgets() { + return Row( + spacing: MySpaces.s22, + children: [ + Expanded( + child: HomeCustomWidget( + type: CustomWidgetType.customLeague, + firstText: 'ongoing:', + secondText: + 'Saba Center League - Imam Hassan ministry London school', + ), + ), + Expanded( + child: HomeCustomWidget( + type: CustomWidgetType.friendBattle, + firstText: 'online:', + secondText: 'No one\'s online', + ), + ), + ], ); } } diff --git a/lib/features/home/presentation/pages/widgets/home_battle_cast.dart b/lib/features/home/presentation/pages/widgets/home_battle_cast.dart new file mode 100644 index 0000000..2cd7d8f --- /dev/null +++ b/lib/features/home/presentation/pages/widgets/home_battle_cast.dart @@ -0,0 +1,136 @@ +import 'package:flutter/material.dart' hide BoxDecoration, BoxShadow; +import 'package:flutter_inset_box_shadow_update/flutter_inset_box_shadow_update.dart'; +import 'package:shia_game_flutter/common_ui/resources/my_assets.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/core/utils/gap.dart'; +import 'package:shia_game_flutter/core/widgets/container/gradient_container.dart'; +import 'package:shia_game_flutter/core/widgets/image/my_image.dart'; + +class HomeBattleCast extends StatelessWidget { + const HomeBattleCast({ + super.key, + }); + + @override + Widget build(BuildContext context) { + return Stack( + alignment: Alignment.center, + clipBehavior: Clip.none, + children: [ + GradientContainer( + height: 120, + borderRadius: BorderRadiusDirectional.all(Radius.circular(MySpaces.s20)), + borderGradient: LinearGradient( + begin: AlignmentDirectional.topCenter, + end: AlignmentDirectional.bottomCenter, + colors: [Color(0XFF567EFF), Color(0XFF304DB8)], + ), + gradient: RadialGradient( + radius: 1, + center: Alignment(-0.5, -1), + colors: [Color(0XFF104CBA).withValues(alpha: 0.2), Color(0XFF104CBA)], + ), + padding: EdgeInsets.all(MySpaces.s10), + image: DecorationImage( + image: AssetImage(MyAssets.addBackground), + repeat: ImageRepeat.repeat, + colorFilter: ColorFilter.mode( + Colors.black.withValues(alpha: 0.02), + BlendMode.srcIn, + ), + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.end, + children: [ + ShaderMask( + blendMode: BlendMode.modulate, + shaderCallback: (bounds) => LinearGradient( + begin: Alignment.topCenter, + end: Alignment.bottomCenter, + colors: [Color(0XFFFFFFFF), Color(0XFFE4E3FF)], + ).createShader(bounds), + child: Text( + 'Battle Cast', + style: Lexend.extraBold.copyWith( + fontSize: 22, + shadows: [ + BoxShadow( + color: Color(0xFF3C38C4), + blurRadius: 0.52, + offset: Offset(0, 1.04), + spreadRadius: 0, + ), + ], + ), + ), + ), + MySpaces.s10.gapHeight, + Container( + padding: EdgeInsets.all(5), + decoration: BoxDecoration( + borderRadius: BorderRadius.all(Radius.circular(8)), + color: Color(0XFF203689), + boxShadow: [ + BoxShadow( + color: Color(0XFF000000).withValues(alpha: 0.3), + blurRadius: 3, + offset: Offset(0, 2), + inset: true, + ), + ], + ), + child: Text( + 'Sheikh.Sadra VS Ali Masoudi (online) - Sheikh.Sadra number tow VS Ali Masoudi tabar (tomorrow)', + maxLines: 1, + style: Lexend.semiBold.copyWith( + fontSize: 8, + color: Color(0XFFB6B3FF), + ), + ), + ), + ], + ), + ), + PositionedDirectional( + start: -1, + top: -MySpaces.s4, + child: GradientContainer( + color: Color(0XFFCC9B22), + padding: EdgeInsets.symmetric( + vertical: MySpaces.s2, + horizontal: MySpaces.s8, + ), + borderRadius: BorderRadiusDirectional.only( + topStart: Radius.circular(6), + topEnd: Radius.circular(6), + bottomStart: Radius.circular(0), + bottomEnd: Radius.circular(6), + ), + child: Text( + '2 New', + style: Lexend.extraBold.copyWith( + fontSize: 11, + ), + ), + ), + ), + PositionedDirectional( + end: MySpaces.s20, + top: -MySpaces.s10, + child: Row( + children: [ + MyImage( + asset: MyAssets.mic, + ), + MyImage( + asset: MyAssets.micBLur, + ), + ], + ), + ), + ], + ); + } +} diff --git a/lib/features/home/presentation/pages/widgets/home_battle_league.dart b/lib/features/home/presentation/pages/widgets/home_battle_league.dart new file mode 100644 index 0000000..aac63c7 --- /dev/null +++ b/lib/features/home/presentation/pages/widgets/home_battle_league.dart @@ -0,0 +1,75 @@ +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_spaces.dart'; +import 'package:shia_game_flutter/common_ui/resources/my_text_style.dart'; +import 'package:shia_game_flutter/core/utils/screen_size.dart'; +import 'package:shia_game_flutter/core/widgets/container/gradient_container.dart'; +import 'package:shia_game_flutter/core/widgets/image/my_image.dart'; + +class HomeBattleLeague extends StatelessWidget { + const HomeBattleLeague({super.key}); + + @override + Widget build(BuildContext context) { + return Stack( + alignment: AlignmentDirectional.bottomEnd, + children: [ + GradientContainer( + width: context.widthScreen, + height: 120, + padding: EdgeInsets.symmetric( + horizontal: MySpaces.s12, + vertical: MySpaces.s16, + ), + borderGradient: LinearGradient( + begin: AlignmentDirectional.centerStart, + end: AlignmentDirectional.centerEnd, + colors: [Color(0XFF3A0A85), Color(0XFF6C2ECD)], + ), + gradient: LinearGradient( + begin: AlignmentDirectional.centerStart, + end: AlignmentDirectional.centerEnd, + colors: [Color(0XFF3A0D83), Color(0XFF4F09BF)], + ), + borderRadius: BorderRadius.all(Radius.circular(20)), + child: Column( + mainAxisAlignment: MainAxisAlignment.end, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + ShaderMask( + blendMode: BlendMode.modulate, + shaderCallback: (bounds) => LinearGradient( + begin: Alignment.topCenter, + end: Alignment.bottomCenter, + colors: [Color(0XFFFFFFFF), Color(0XFFCAA8FF)], + ).createShader(bounds), + child: Text( + 'Battle League', + style: Lexend.extraBold.copyWith( + fontSize: 22, + shadows: [ + BoxShadow( + color: Color(0xFF3E1381), + blurRadius: 0.84, + offset: Offset(0, 1.69), + spreadRadius: 0, + ), + ], + ), + ), + ), + Text( + 'The faster you answer, the winner', + style: Lexend.medium.copyWith( + fontSize: 10, + color: Color(0XFFA183D2), + ), + ), + ], + ), + ), + MyImage(asset: MyAssets.cup), + ], + ); + } +} diff --git a/lib/features/home/presentation/pages/widgets/home_custom_widget.dart b/lib/features/home/presentation/pages/widgets/home_custom_widget.dart new file mode 100644 index 0000000..dc8853e --- /dev/null +++ b/lib/features/home/presentation/pages/widgets/home_custom_widget.dart @@ -0,0 +1,191 @@ +import 'package:flutter/material.dart' hide BoxDecoration, BoxShadow; +import 'package:flutter_inset_box_shadow_update/flutter_inset_box_shadow_update.dart'; +import 'package:get/get.dart'; +import 'package:shia_game_flutter/common_ui/resources/my_assets.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/core/utils/gap.dart'; +import 'package:shia_game_flutter/core/utils/my_localization.dart'; +import 'package:shia_game_flutter/core/utils/screen_size.dart'; +import 'package:shia_game_flutter/core/widgets/container/gradient_container.dart'; +import 'package:shia_game_flutter/core/widgets/image/my_image.dart'; + +enum CustomWidgetType { + customLeague, + friendBattle; + + static Map get borderGradient => { + CustomWidgetType.customLeague: LinearGradient( + begin: AlignmentDirectional.topCenter, + end: AlignmentDirectional.bottomCenter, + colors: [Color(0XFF4BAD42), Color(0XFF147743)], + ), + CustomWidgetType.friendBattle: LinearGradient( + begin: AlignmentDirectional.topCenter, + end: AlignmentDirectional.bottomCenter, + colors: [Color(0XFFED9851), Color(0XFFC77041)], + ), + }; + + static Map get gradient => { + CustomWidgetType.customLeague: RadialGradient( + radius: 0.7, + center: Alignment(-0.6, -0.8), + colors: [Color(0XFF58AE23), Color(0XFF066A36)], + ), + CustomWidgetType.friendBattle: RadialGradient( + radius: 0.7, + center: Alignment(-0.6, -0.8), + colors: [Color(0XFFE99E53), Color(0XFFBC673A)], + ), + }; + + static Map get image => { + CustomWidgetType.customLeague: MyAssets.medal, + CustomWidgetType.friendBattle: MyAssets.friendBattle, + }; + + static Map get containerColor => { + CustomWidgetType.customLeague: Color(0XFF05542B), + CustomWidgetType.friendBattle: Color(0XFFA45A31), + }; + + static Map get firstTextColor => { + CustomWidgetType.customLeague: Color(0XFF4FDF94), + CustomWidgetType.friendBattle: Color(0XFFE3DFD5), + }; + + static Map get secondTextColor => { + CustomWidgetType.customLeague: Color(0XFF85C9A6), + CustomWidgetType.friendBattle: Color(0XFFDFBC9D), + }; + + static Map get title => { + CustomWidgetType.customLeague: ShaderMask( + blendMode: BlendMode.modulate, + shaderCallback: (bounds) => LinearGradient( + begin: Alignment.topCenter, + end: Alignment.bottomCenter, + colors: [Color(0XFFFFFFFF), Color(0XFFFFFFFF), Color(0XFFBEF8DA)], + ).createShader(bounds), + child: Text( + Get.context?.translate.custom_league ?? '', + style: Lexend.extraBold.copyWith( + fontSize: 14, + shadows: [ + BoxShadow( + color: Color(0xFF07592F), + blurRadius: 0.52, + offset: Offset(0, 1.04), + spreadRadius: 0, + ), + ], + ), + ), + ), + CustomWidgetType.friendBattle: ShaderMask( + blendMode: BlendMode.modulate, + shaderCallback: (bounds) => LinearGradient( + begin: Alignment.topCenter, + end: Alignment.bottomCenter, + colors: [Color(0XFFFFFFFF), Color(0XFFFFFFFF), Color(0XFFFFB994)], + ).createShader(bounds), + child: Text( + Get.context?.translate.friends_battle ?? '', + style: Lexend.extraBold.copyWith( + fontSize: 14, + shadows: [ + BoxShadow( + color: Color(0xFFAA5B31), + blurRadius: 0.52, + offset: Offset(0, 1.04), + spreadRadius: 0, + ), + ], + ), + ), + ), + }; +} + +class HomeCustomWidget extends StatelessWidget { + const HomeCustomWidget({ + super.key, + this.type = CustomWidgetType.customLeague, + this.firstText, + this.secondText, + }); + + final CustomWidgetType type; + final String? firstText; + final String? secondText; + + @override + Widget build(BuildContext context) { + return GradientContainer( + height: 130, + borderRadius: BorderRadius.all(Radius.circular(20)), + borderGradient: CustomWidgetType.borderGradient[type], + gradient: CustomWidgetType.gradient[type], + image: DecorationImage( + image: AssetImage(MyAssets.addBackground), + repeat: ImageRepeat.repeat, + colorFilter: ColorFilter.mode( + Colors.black.withValues(alpha: 0.02), + BlendMode.srcIn, + ), + ), + padding: EdgeInsets.all(MySpaces.s10), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Align( + alignment: AlignmentDirectional.centerEnd, + child: MyImage(asset: CustomWidgetType.image[type] ?? '',), + ), + Spacer(), + CustomWidgetType.title[type] ?? SizedBox.shrink(), + MySpaces.s10.gapHeight, + Container( + padding: EdgeInsets.all(5), + width: context.widthScreen, + decoration: BoxDecoration( + borderRadius: BorderRadius.all(Radius.circular(8)), + color: CustomWidgetType.containerColor[type], + boxShadow: [ + BoxShadow( + color: Color(0XFF000000).withValues(alpha: 0.3), + blurRadius: 3, + offset: Offset(0, 2), + inset: true, + ), + ], + ), + child: Text.rich( + maxLines: 1, + overflow: TextOverflow.ellipsis, + TextSpan( + children: [ + TextSpan( + text: firstText, + style: Lexend.semiBold.copyWith( + fontSize: 8, + color: CustomWidgetType.firstTextColor[type], + ), + ), + TextSpan( + text: ' $secondText', + style: Lexend.semiBold.copyWith( + fontSize: 8, + color: CustomWidgetType.secondTextColor[type], + ), + ), + ], + ), + ), + ), + ], + ), + ); + } +} diff --git a/lib/features/home/presentation/pages/widgets/home_membership.dart b/lib/features/home/presentation/pages/widgets/home_membership.dart new file mode 100644 index 0000000..a575d0a --- /dev/null +++ b/lib/features/home/presentation/pages/widgets/home_membership.dart @@ -0,0 +1,57 @@ +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_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/utils/screen_size.dart'; +import 'package:shia_game_flutter/core/widgets/container/gradient_container.dart'; +import 'package:shia_game_flutter/core/widgets/image/my_image.dart'; + +class HomeMembership extends StatelessWidget { + const HomeMembership({super.key}); + + @override + Widget build(BuildContext context) { + return GradientContainer( + width: context.widthScreen, + color: context.backgroundColor, + borderGradient: LinearGradient( + begin: AlignmentDirectional.topStart, + end: AlignmentDirectional.bottomEnd, + colors: [ + Color(0XFFDE8B4D).withValues(alpha: 0.3), + Color(0XFFDE8B4D).withValues(alpha: 0.05), + ], + ), + borderRadius: BorderRadius.all(Radius.circular(MySpaces.s20)), + boxShadow: [ + BoxShadow( + color: Color(0x3F000000), + blurRadius: 17, + offset: Offset(0, 4), + spreadRadius: 20, + ), + ], + padding: EdgeInsets.symmetric(horizontal: MySpaces.s16, vertical: 13), + child: Row( + children: [ + MyImage(asset: MyAssets.iconCrown), + MySpaces.s8.gapWidth, + Text( + context.translate.pro_membership, + style: Lexend.semiBold.copyWith( + fontSize: 12, + color: Color(0XFFFCC230), + ), + ), + Spacer(), + MyImage(asset: MyAssets.iconClock), + MySpaces.s6.gapWidth, + Text('125d 4h', style: Lexend.semiBold.copyWith(fontSize: 12)), + ], + ), + ); + } +} diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index cf03135..886f871 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -4,5 +4,8 @@ "home": "Home", "shop": "Shop", "awards": "Awards", - "profile": "Profile" + "profile": "Profile", + "pro_membership": "Pro Membership", + "custom_league": "Custom League", + "friends_battle": "Friends Battle" } \ No newline at end of file diff --git a/lib/l10n/app_localizations.dart b/lib/l10n/app_localizations.dart index 01e66b3..c19bb98 100644 --- a/lib/l10n/app_localizations.dart +++ b/lib/l10n/app_localizations.dart @@ -123,6 +123,24 @@ abstract class AppLocalizations { /// In en, this message translates to: /// **'Profile'** String get profile; + + /// No description provided for @pro_membership. + /// + /// In en, this message translates to: + /// **'Pro Membership'** + String get pro_membership; + + /// No description provided for @custom_league. + /// + /// In en, this message translates to: + /// **'Custom League'** + String get custom_league; + + /// No description provided for @friends_battle. + /// + /// In en, this message translates to: + /// **'Friends Battle'** + String get friends_battle; } class _AppLocalizationsDelegate diff --git a/lib/l10n/app_localizations_en.dart b/lib/l10n/app_localizations_en.dart index bae517b..ba4430c 100644 --- a/lib/l10n/app_localizations_en.dart +++ b/lib/l10n/app_localizations_en.dart @@ -22,4 +22,13 @@ class AppLocalizationsEn extends AppLocalizations { @override String get profile => 'Profile'; + + @override + String get pro_membership => 'Pro Membership'; + + @override + String get custom_league => 'Custom League'; + + @override + String get friends_battle => 'Friends Battle'; } diff --git a/pubspec.lock b/pubspec.lock index 108f0fa..fc3519b 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -102,6 +102,14 @@ packages: description: flutter source: sdk version: "0.0.0" + flutter_inset_box_shadow_update: + dependency: "direct main" + description: + name: flutter_inset_box_shadow_update + sha256: "91c912d01c049e761d0b7e9d81061acc62677f33bdde4e854257f1b10d8f0821" + url: "https://pub.dev" + source: hosted + version: "0.0.1" flutter_lints: dependency: "direct dev" description: diff --git a/pubspec.yaml b/pubspec.yaml index f19b4db..a55a011 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -11,6 +11,7 @@ dependencies: equatable: ^2.0.7 flutter: sdk: flutter + flutter_inset_box_shadow_update: ^0.0.1 flutter_localizations: sdk: flutter get: ^4.7.2