diff --git a/lib/core/styles/app_text.dart b/lib/core/styles/app_text.dart index a4a4a9c..e9aa39f 100644 --- a/lib/core/styles/app_text.dart +++ b/lib/core/styles/app_text.dart @@ -29,7 +29,7 @@ class AppText { static const String invalidPhoneNo = "Invalid phone number"; static const String enterPhoneNo = "Enter phone number"; static const String invalidPassword = "Invalid password"; - static const String forgorPassword = "Forgot password"; + static const String forgotPassword = "Forgot password"; //Register static const String getStartedToday = "Get started today"; diff --git a/lib/features/MainScreens/Invest/presentation/pages/invest_details_screen.dart b/lib/features/MainScreens/Invest/presentation/pages/invest_details_screen.dart index c726950..c7d311c 100644 --- a/lib/features/MainScreens/Invest/presentation/pages/invest_details_screen.dart +++ b/lib/features/MainScreens/Invest/presentation/pages/invest_details_screen.dart @@ -22,9 +22,9 @@ class InvestDetailsScreen extends StatelessWidget { bottomNavigationBar: type == "closed" ? null : Container( - padding: const EdgeInsets.symmetric(horizontal: 18, vertical: 26), + margin: const EdgeInsets.all(10), width: 1.sw, - height: 105.h, + height: 65.h, child: ButtonWidget().elevatedBtn( text: AppText.investText, clr: AppColor.primaryColor2, diff --git a/lib/features/MainScreens/Invest/presentation/pages/payment/confirm_investment_screen.dart b/lib/features/MainScreens/Invest/presentation/pages/payment/confirm_investment_screen.dart index 026f6ef..f13efea 100644 --- a/lib/features/MainScreens/Invest/presentation/pages/payment/confirm_investment_screen.dart +++ b/lib/features/MainScreens/Invest/presentation/pages/payment/confirm_investment_screen.dart @@ -1,20 +1,31 @@ import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:google_fonts/google_fonts.dart'; import 'package:tanami_app/features/MainScreens/Invest/presentation/pages/payment/confirm_investment_layout.dart'; import '../../../../../../core/styles/app_color.dart'; import '../../../../../../core/styles/app_text.dart'; -import '../../../../../../shared/components/appbar_widget.dart'; class ConfirmInvestmentScreen extends StatelessWidget { const ConfirmInvestmentScreen({super.key}); @override Widget build(BuildContext context) { - return const Scaffold( + return Scaffold( backgroundColor: AppColor.plainWhite, - appBar: AppBarWidget( - height: 75, - titleTxt: AppText.confirmInvestmentText, + appBar: AppBar( + backgroundColor: Colors.white, + elevation: 0, + scrolledUnderElevation: 0.0, + centerTitle: true, + title: Text( + AppText.confirmInvestmentText, + style: GoogleFonts.dmSans( + color: const Color(0xFF272727), + fontSize: 20.sp, + fontWeight: FontWeight.w700, + ), + ), ), body: ConfirmInvestmentLayout(), ); diff --git a/lib/features/MainScreens/Invest/presentation/pages/payment/invest_payment_layout.dart b/lib/features/MainScreens/Invest/presentation/pages/payment/invest_payment_layout.dart index f16e66b..7faf170 100644 --- a/lib/features/MainScreens/Invest/presentation/pages/payment/invest_payment_layout.dart +++ b/lib/features/MainScreens/Invest/presentation/pages/payment/invest_payment_layout.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:gap/gap.dart'; import 'package:tanami_app/core/styles/app_color.dart'; import 'package:tanami_app/features/MainScreens/Invest/presentation/widgets/payment/invest_pay_bottom_section.dart'; import 'package:tanami_app/features/MainScreens/Invest/presentation/widgets/payment/invest_pay_method_section.dart'; @@ -16,6 +17,7 @@ class InvestPaymentLayout extends StatelessWidget { InvestPayTopSection(), InvestPayMethodSection(), InvestPayBottomSection(), + Gap(10), ], ), ); diff --git a/lib/features/MainScreens/Invest/presentation/widgets/invest_detail_image_carousel.dart b/lib/features/MainScreens/Invest/presentation/widgets/invest_detail_image_carousel.dart index 015aaa6..75ddae0 100644 --- a/lib/features/MainScreens/Invest/presentation/widgets/invest_detail_image_carousel.dart +++ b/lib/features/MainScreens/Invest/presentation/widgets/invest_detail_image_carousel.dart @@ -108,7 +108,7 @@ class InvestDetailCarouselView extends StatelessWidget { color: const Color(0xFFE4F5E9), borderRadius: BorderRadius.circular(30.0), ), - child: TextWidget().text12W700( + child: TextWidget().text11W700( 'Asset Class', clr: AppColor.selectedItemColor, ), @@ -134,7 +134,7 @@ class InvestDetailCarouselView extends StatelessWidget { Gap( 5.w, ), - TextWidget().text12W500( + TextWidget().text11W500( '${AppText.closingDateText} Jul 10 2025', clr: AppColor.plainBlack, ), diff --git a/lib/features/MainScreens/Invest/presentation/widgets/payment/invest_pay_bottom_section.dart b/lib/features/MainScreens/Invest/presentation/widgets/payment/invest_pay_bottom_section.dart index c68a4ef..c11cf76 100644 --- a/lib/features/MainScreens/Invest/presentation/widgets/payment/invest_pay_bottom_section.dart +++ b/lib/features/MainScreens/Invest/presentation/widgets/payment/invest_pay_bottom_section.dart @@ -7,7 +7,6 @@ import '../../../../../../core/routes/routes.dart'; import '../../../../../../core/styles/app_color.dart'; import '../../../../../../core/styles/app_text.dart'; import '../../../../../../shared/components/button_widget.dart'; -import '../../../../../../shared/components/text_widget.dart'; class InvestPayBottomSection extends StatelessWidget { const InvestPayBottomSection({super.key}); @@ -24,53 +23,22 @@ class InvestPayBottomSection extends StatelessWidget { width: 1.sw, height: 56.h, child: ButtonWidget().elevatedBtn( - txtClr: // isButtonEnabled ? - AppColor.plainWhite, - // : AppColor.inactiveBtnTxtColor, + txtClr: AppColor.plainWhite, function: () { - // isButtonEnabled - // ? context.read().add( - // ChangePasswordSubmitted( - // context - // .read() - // .currentPasswordTextField - // .text, - // context - // .read() - // .passwordTextField - // .text, - // context - // .read() - // .repeatPasswordTextField - // .text, - // ), - // ) - // : null; - - // showDialog( - // context: context, - // builder: (context) { - // return const InvestmentOverSubscribedDialog(); - // }, - // ); - goRouter.pushNamed(RouteName.confirmInvestScreen); }, text: AppText.nextText, - clr: - // isButtonEnabled ? - AppColor.primaryColor2 - // : AppColor.inactiveBtnColor, - ), + clr: AppColor.primaryColor2), ), const Gap(5), - ButtonWidget().textBtn( - function: () { - goRouter.pop(); - }, - text: TextWidget().text14W700(AppText.backText, - clr: AppColor.textLabelColor, - textDecoration: TextDecoration.underline)), + ButtonWidget().textBorderBtn( + borderClr: AppColor.txtBorderColor, + clr: AppColor.plainWhite, + function: () { + goRouter.pop(); + }, + text: AppText.backText, + ), ], ); } diff --git a/lib/features/MainScreens/Invest/presentation/widgets/payment/invest_pay_method_section.dart b/lib/features/MainScreens/Invest/presentation/widgets/payment/invest_pay_method_section.dart index 2df6696..868d0ce 100644 --- a/lib/features/MainScreens/Invest/presentation/widgets/payment/invest_pay_method_section.dart +++ b/lib/features/MainScreens/Invest/presentation/widgets/payment/invest_pay_method_section.dart @@ -94,9 +94,13 @@ class InvestPayMethodSection extends StatelessWidget { ), Container( decoration: const BoxDecoration( - border: Border( - bottom: BorderSide( - width: 1, color: Colors.grey))), + border: Border( + bottom: BorderSide( + width: 1, + color: Colors.grey, + ), + ), + ), child: Row( children: [ RichText( @@ -175,6 +179,7 @@ class InvestPayMethodSection extends StatelessWidget { ], ), child: Column( + crossAxisAlignment: CrossAxisAlignment.start, children: [ Container( padding: const EdgeInsets.all(12), @@ -209,10 +214,12 @@ class InvestPayMethodSection extends StatelessWidget { ), ), Padding( - padding: const EdgeInsets.all(12.0), + padding: const EdgeInsets.all(12), child: TextWidget().text14W500( - AppText.instantTransferFundsApplePayText, - clr: AppColor.textLabelColor), + AppText.instantTransferFundsApplePayText, + clr: AppColor.textLabelColor, + txtAlign: TextAlign.start, + ), ), const Gap(12), ], diff --git a/lib/features/MainScreens/Settings/presentation/pages/settings_layout.dart b/lib/features/MainScreens/Settings/presentation/pages/settings_layout.dart index d2b0d13..7032e64 100644 --- a/lib/features/MainScreens/Settings/presentation/pages/settings_layout.dart +++ b/lib/features/MainScreens/Settings/presentation/pages/settings_layout.dart @@ -15,25 +15,19 @@ class SettingsLayout extends StatelessWidget { Widget build(BuildContext context) { return Scaffold( backgroundColor: AppColor.plainWhite, - body: Padding( - padding: const EdgeInsets.symmetric( - horizontal: 16, - vertical: 10, - ), - child: SingleChildScrollView( - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - kycCard(), - const Gap(15), - const GeneralSettingsSection(), - const Gap(15), - const PrivacySettingsSection(), - const Gap(15), - const SupportSettingsSection(), - const SettingsBottomSection(), - ], - ), + body: SingleChildScrollView( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + kycCard(), + const Gap(15), + const GeneralSettingsSection(), + const Gap(15), + const PrivacySettingsSection(), + const Gap(15), + const SupportSettingsSection(), + const SettingsBottomSection(), + ], ), ), ); diff --git a/lib/features/MainScreens/Settings/presentation/pages/settings_screen.dart b/lib/features/MainScreens/Settings/presentation/pages/settings_screen.dart index 4b21e1b..74ba911 100644 --- a/lib/features/MainScreens/Settings/presentation/pages/settings_screen.dart +++ b/lib/features/MainScreens/Settings/presentation/pages/settings_screen.dart @@ -16,19 +16,20 @@ class _SettingsScreenState extends State { @override Widget build(BuildContext context) { return Scaffold( - backgroundColor: AppColor.plainWhite, - appBar: AppBar( - backgroundColor: Colors.white, - elevation: 0, - scrolledUnderElevation: 0, - automaticallyImplyLeading: false, - centerTitle: true, - title: TextWidget().text22W700( - AppText.settingsText, - clr: AppColor.charcoalColor, - ), - titleSpacing: 16, + backgroundColor: AppColor.plainWhite, + appBar: AppBar( + backgroundColor: Colors.white, + elevation: 0, + scrolledUnderElevation: 0, + automaticallyImplyLeading: false, + centerTitle: true, + title: TextWidget().text22W700( + AppText.settingsText, + clr: AppColor.charcoalColor, ), - body: const SettingsLayout()); + titleSpacing: 16, + ), + body: SettingsLayout(), + ); } } diff --git a/lib/features/MainScreens/Settings/presentation/widgets/general_settings_section.dart b/lib/features/MainScreens/Settings/presentation/widgets/general_settings_section.dart index 3d378c6..78b23a5 100644 --- a/lib/features/MainScreens/Settings/presentation/widgets/general_settings_section.dart +++ b/lib/features/MainScreens/Settings/presentation/widgets/general_settings_section.dart @@ -17,41 +17,46 @@ class GeneralSettingsSection extends StatelessWidget { @override Widget build(BuildContext context) { - return Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - TextWidget().text14W600( - AppText.generalText, - clr: AppColor.hintTextColor, - ), - const Gap(5), - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - TextWidget().text14W600( - AppText.notificationText, - clr: AppColor.textLabelColor, - ), - BlocProvider( - create: (_) => ToggleBloc(), - child: const CustomToggle(), - ) - ], - ), - const Gap(12), - SettingsListItem( - onTapFunc: () { - goRouter.pushNamed(RouteName.languageChangeScreen); - }, - icon: AppImages.languageIcon, - title: AppText.languageText, - trailing: AppText.englishText, - ), - const Gap(10), - const Divider( - color: AppColor.academyCardTextColor, - ), - ], + return Padding( + padding: const EdgeInsets.symmetric( + horizontal: 16, + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + TextWidget().text14W600( + AppText.generalText, + clr: AppColor.hintTextColor, + ), + const Gap(5), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + TextWidget().text14W600( + AppText.notificationText, + clr: AppColor.textLabelColor, + ), + BlocProvider( + create: (_) => ToggleBloc(), + child: const CustomToggle(), + ) + ], + ), + const Gap(12), + SettingsListItem( + onTapFunc: () { + goRouter.pushNamed(RouteName.languageChangeScreen); + }, + icon: AppImages.languageIcon, + title: AppText.languageText, + trailing: AppText.englishText, + ), + const Gap(10), + const Divider( + color: AppColor.academyCardTextColor, + ), + ], + ), ); } } diff --git a/lib/features/MainScreens/Settings/presentation/widgets/kyc_card.dart b/lib/features/MainScreens/Settings/presentation/widgets/kyc_card.dart index b72f599..9cf8951 100644 --- a/lib/features/MainScreens/Settings/presentation/widgets/kyc_card.dart +++ b/lib/features/MainScreens/Settings/presentation/widgets/kyc_card.dart @@ -7,59 +7,65 @@ import 'package:tanami_app/core/styles/app_text.dart'; import 'package:tanami_app/shared/components/text_widget.dart'; Widget kycCard() { - return Container( - padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 8), - decoration: ShapeDecoration( - color: const Color(0xFFD9EDE0), - shape: RoundedRectangleBorder( - side: const BorderSide( - width: 1, - color: AppColor.kycCardBgColor, - ), - borderRadius: BorderRadius.circular(22), - ), - shadows: const [ - BoxShadow( - color: Color(0x33066123), - blurRadius: 8, - offset: Offset(-3, -3), - spreadRadius: 0, - ), - BoxShadow( - color: Color(0x26122F1A), - blurRadius: 8, - offset: Offset(3, 3), - spreadRadius: 0, - ) - ], + return Padding( + padding: const EdgeInsets.symmetric( + horizontal: 16, + vertical: 10, ), - child: Row( - children: [ - SvgPicture.asset( - AppImages.upgradeIcon, - ), - const Gap(8), - Expanded( - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - TextWidget().text14W600( - AppText.experiencedInvestorText, - clr: AppColor.kycCardTextColor, - ), - TextWidget().text11W500( - AppText.upgradeText, - clr: AppColor.kycCardTextColor, - ), - ], + child: Container( + padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 8), + decoration: ShapeDecoration( + color: const Color(0xFFD9EDE0), + shape: RoundedRectangleBorder( + side: const BorderSide( + width: 1, + color: AppColor.kycCardBgColor, ), + borderRadius: BorderRadius.circular(22), ), - const Gap(8), - const Icon( - Icons.arrow_forward_ios_rounded, - color: AppColor.kycCardTextColor, - ) - ], + shadows: const [ + BoxShadow( + color: Color(0x33066123), + blurRadius: 8, + offset: Offset(-3, -3), + spreadRadius: 0, + ), + BoxShadow( + color: Color(0x26122F1A), + blurRadius: 8, + offset: Offset(3, 3), + spreadRadius: 0, + ) + ], + ), + child: Row( + children: [ + SvgPicture.asset( + AppImages.upgradeIcon, + ), + const Gap(8), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + TextWidget().text14W600( + AppText.experiencedInvestorText, + clr: AppColor.kycCardTextColor, + ), + TextWidget().text11W500( + AppText.upgradeText, + clr: AppColor.kycCardTextColor, + ), + ], + ), + ), + const Gap(8), + const Icon( + Icons.arrow_forward_ios_rounded, + color: AppColor.kycCardTextColor, + ) + ], + ), ), ); } diff --git a/lib/features/MainScreens/Settings/presentation/widgets/privacy_settings_section.dart b/lib/features/MainScreens/Settings/presentation/widgets/privacy_settings_section.dart index f94d879..9ccfd65 100644 --- a/lib/features/MainScreens/Settings/presentation/widgets/privacy_settings_section.dart +++ b/lib/features/MainScreens/Settings/presentation/widgets/privacy_settings_section.dart @@ -17,54 +17,59 @@ class PrivacySettingsSection extends StatelessWidget { @override Widget build(BuildContext context) { - return Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - TextWidget().text14W600( - AppText.privacySettingsText, - clr: AppColor.hintTextColor, - ), - const Gap(5), - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - TextWidget().text14W600( - AppText.biometricText, - clr: AppColor.textLabelColor, - ), - BlocProvider( - create: (_) => ToggleBloc(), - child: const CustomToggle(), - ) - ], - ), - const Gap(12), - SettingsListItem( - onTapFunc: () { - goRouter.pushNamed( - RouteName.changePasswordScreen, - ); - }, - icon: AppImages.resetPasswordIcon, - title: AppText.resetPasswordText, - trailing: "", - ), - const Gap(8), - SettingsListItem( - onTapFunc: () { - goRouter.pushNamed(RouteName.pinScreen, pathParameters: { - "fromScreen": "reset-pin", - }); - }, - icon: AppImages.resetPinIcon, - title: AppText.resetPinCodeText, - trailing: "", - ), - const Gap(10), - const Divider( - color: AppColor.academyCardTextColor, - ), - ], + return Padding( + padding: const EdgeInsets.symmetric( + horizontal: 16, + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + TextWidget().text14W600( + AppText.privacySettingsText, + clr: AppColor.hintTextColor, + ), + const Gap(5), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + TextWidget().text14W600( + AppText.biometricText, + clr: AppColor.textLabelColor, + ), + BlocProvider( + create: (_) => ToggleBloc(), + child: const CustomToggle(), + ) + ], + ), + const Gap(12), + SettingsListItem( + onTapFunc: () { + goRouter.pushNamed( + RouteName.changePasswordScreen, + ); + }, + icon: AppImages.resetPasswordIcon, + title: AppText.resetPasswordText, + trailing: "", + ), + const Gap(8), + SettingsListItem( + onTapFunc: () { + goRouter.pushNamed(RouteName.pinScreen, pathParameters: { + "fromScreen": "reset-pin", + }); + }, + icon: AppImages.resetPinIcon, + title: AppText.resetPinCodeText, + trailing: "", + ), + const Gap(10), + const Divider( + color: AppColor.academyCardTextColor, + ), + ], + ), ); } } diff --git a/lib/features/MainScreens/Settings/presentation/widgets/settings_bottom_section.dart b/lib/features/MainScreens/Settings/presentation/widgets/settings_bottom_section.dart index b540a74..905401d 100644 --- a/lib/features/MainScreens/Settings/presentation/widgets/settings_bottom_section.dart +++ b/lib/features/MainScreens/Settings/presentation/widgets/settings_bottom_section.dart @@ -34,15 +34,6 @@ class SettingsBottomSection extends StatelessWidget { ), ), const Gap(5), - // ButtonWidget().textBtn( - // function: () { - // goRouter.pushNamed(RouteName.deleteAccountScreen); - // }, - // text: TextWidget().text14W700( - // AppText.deleteAccountText, - // clr: AppColor.hintTextColor, - // textDecoration: TextDecoration.underline, - // )), Container( width: 1.sw, height: 56.h, @@ -56,6 +47,7 @@ class SettingsBottomSection extends StatelessWidget { clr: AppColor.plainWhite, ), ), + const Gap(25), ], ); } diff --git a/lib/features/MainScreens/Settings/presentation/widgets/support_settings_section.dart b/lib/features/MainScreens/Settings/presentation/widgets/support_settings_section.dart index a35d346..dd3c2b5 100644 --- a/lib/features/MainScreens/Settings/presentation/widgets/support_settings_section.dart +++ b/lib/features/MainScreens/Settings/presentation/widgets/support_settings_section.dart @@ -14,50 +14,55 @@ class SupportSettingsSection extends StatelessWidget { @override Widget build(BuildContext context) { - return Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - TextWidget().text14W600( - AppText.supportText, - clr: AppColor.hintTextColor, - ), - const Gap(8), - SettingsListItem( - onTapFunc: () { - goRouter.pushNamed(RouteName.contactAdminScreen); - }, - icon: AppImages.contactIcon, - title: AppText.contactAdminText, - trailing: "", - ), - const Gap(8), - SettingsListItem( - onTapFunc: () {}, - icon: AppImages.privacyIcon, - title: AppText.privacyPolicy, - trailing: "", - ), - const Gap(8), - SettingsListItem( - onTapFunc: () {}, - icon: AppImages.privacyIcon, - title: AppText.termsAndCondition, - trailing: "", - ), - const Gap(8), - SettingsListItem( - onTapFunc: () { - goRouter.pushNamed(RouteName.faqScreen); - }, - icon: AppImages.faqIcon, - title: AppText.faqText, - trailing: "", - ), - const Gap(10), - const Divider( - color: AppColor.academyCardTextColor, - ), - ], + return Padding( + padding: const EdgeInsets.symmetric( + horizontal: 16, + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + TextWidget().text14W600( + AppText.supportText, + clr: AppColor.hintTextColor, + ), + const Gap(8), + SettingsListItem( + onTapFunc: () { + goRouter.pushNamed(RouteName.contactAdminScreen); + }, + icon: AppImages.contactIcon, + title: AppText.contactAdminText, + trailing: "", + ), + const Gap(8), + SettingsListItem( + onTapFunc: () {}, + icon: AppImages.privacyIcon, + title: AppText.privacyPolicy, + trailing: "", + ), + const Gap(8), + SettingsListItem( + onTapFunc: () {}, + icon: AppImages.privacyIcon, + title: AppText.termsAndCondition, + trailing: "", + ), + const Gap(8), + SettingsListItem( + onTapFunc: () { + goRouter.pushNamed(RouteName.faqScreen); + }, + icon: AppImages.faqIcon, + title: AppText.faqText, + trailing: "", + ), + const Gap(10), + const Divider( + color: AppColor.academyCardTextColor, + ), + ], + ), ); } } diff --git a/lib/features/MainScreens/Wallet/presentation/pages/deposit/depositScreen.dart b/lib/features/MainScreens/Wallet/presentation/pages/deposit/depositScreen.dart index 39eba87..8f0e17e 100644 --- a/lib/features/MainScreens/Wallet/presentation/pages/deposit/depositScreen.dart +++ b/lib/features/MainScreens/Wallet/presentation/pages/deposit/depositScreen.dart @@ -45,40 +45,25 @@ class _DepositScreenState extends State { child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Container( - width: 0.55.sw, - decoration: const BoxDecoration( - border: Border( - bottom: BorderSide(width: 1, color: Colors.grey))), - child: Row( + RichText( + text: TextSpan( children: [ - RichText( - text: TextSpan( - children: [ - TextSpan( - text: '${AppText.balance}: ', - style: GoogleFonts.dmSans( - color: Colors.grey, - fontSize: 12.0, - fontWeight: FontWeight.bold, - ), - ), - TextSpan( - text: 'SAR 178,000', - style: GoogleFonts.dmSans( - color: Colors.black, - fontSize: 14.0, - fontWeight: FontWeight.bold, - ), - ), - ], + TextSpan( + text: '${AppText.balance}: ', + style: GoogleFonts.dmSans( + color: Colors.grey, + fontSize: 12.sp, + fontWeight: FontWeight.bold, + ), + ), + TextSpan( + text: 'SAR 178,000', + style: GoogleFonts.dmSans( + color: Colors.black, + fontSize: 14.sp, + fontWeight: FontWeight.bold, ), ), - const Icon( - Icons.arrow_forward, - color: Colors.grey, - size: 15, - ) ], ), ), @@ -291,20 +276,20 @@ class _DepositScreenState extends State { ), ), ), - bottomNavigationBar: GestureDetector( - onTap: () { - goRouter.pushNamed(RouteName.depositPreview); - }, - child: Container( - margin: const EdgeInsets.all(10.0), - height: 65.h, - width: double.infinity, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(22.r), - color: const Color(0xFF004717), - ), - child: Padding( - padding: const EdgeInsets.symmetric(vertical: 20.0), + bottomNavigationBar: Padding( + padding: MediaQuery.of(context).viewInsets, + child: GestureDetector( + onTap: () { + goRouter.pushNamed(RouteName.depositPreview); + }, + child: Container( + margin: const EdgeInsets.all(10.0), + height: 65.h, + width: double.infinity, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(22.r), + color: const Color(0xFF004717), + ), child: Center( child: Text( AppText.depositNoti, diff --git a/lib/features/MainScreens/Wallet/presentation/pages/wallet_details_screen.dart b/lib/features/MainScreens/Wallet/presentation/pages/wallet_details_screen.dart deleted file mode 100644 index a8a44e8..0000000 --- a/lib/features/MainScreens/Wallet/presentation/pages/wallet_details_screen.dart +++ /dev/null @@ -1,330 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:flutter_screenutil/flutter_screenutil.dart'; -import 'package:gap/gap.dart'; -import 'package:google_fonts/google_fonts.dart'; -import 'package:tanami_app/core/routes/routes.dart'; -import 'package:tanami_app/core/styles/app_text.dart'; -import 'package:tanami_app/shared/components/text_widget.dart'; -import 'package:ticket_widget/ticket_widget.dart'; - -import '../../../../../core/styles/app_color.dart'; -import '../../../../../shared/components/button_widget.dart'; -import '../widgets/wallet_list_section.dart'; -import '../widgets/yield_detail_section.dart'; - -class WalletDetailsScreen extends StatelessWidget { - final String type; - WalletDetailsScreen({super.key, required this.type}); - final List titles = [ - AppText.status, - AppText.paymentMethod, - AppText.accountName, - AppText.iban, - AppText.beneficiaryAddress, - AppText.bankName, - AppText.branchAddress, - AppText.SWIFTcode, - AppText.refid, - ]; - final List values = [ - 'On hold', - 'Google/Apple Pay', - 'Name Surname', - 'DE 1234 5678 9012 3456', - 'Hohenzollernring 58, 95444', - 'Name Bank', - 'Hohenzollernring 58, 95444', - 'BC12345', - 'FRYU FHDU 1234', - ]; - - @override - Widget build(BuildContext context) { - return (type == 'confirm-investment') - ? WillPopScope( - onWillPop: () async => false, - child: Scaffold( - backgroundColor: Colors.white, - bottomNavigationBar: Container( - margin: const EdgeInsets.symmetric( - horizontal: 16, - vertical: 15, - ), - width: 1.sw, - height: 60.h, - child: ButtonWidget().elevatedBtn( - txtClr: AppColor.plainWhite, - function: () { - goRouter.pop(); - goRouter.pop(); - goRouter.pop(); - goRouter.pop(); - goRouter.pop(); - }, - text: AppText.closeText, - clr: AppColor.primaryColor2, - ), - ), - appBar: AppBar( - backgroundColor: Colors.white, - elevation: 0, - automaticallyImplyLeading: false, - actions: [ - IconButton( - onPressed: () { - goRouter.pop(); - goRouter.pop(); - goRouter.pop(); - goRouter.pop(); - goRouter.pop(); - }, - icon: const Icon( - Icons.close_sharp, - color: Color(0xFF363636), - ), - ), - ], - scrolledUnderElevation: 0.0, - centerTitle: true, - title: Text( - AppText.investmentConfirmationText, - style: GoogleFonts.dmSans( - color: const Color(0xFF272727), - fontSize: 20.sp, - fontWeight: FontWeight.w700, - ), - ), - ), - body: Padding( - padding: const EdgeInsets.all(18.0), - child: Container( - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(22.r), - color: Colors.transparent, - boxShadow: [ - BoxShadow( - color: Colors.black.withOpacity(0.15), - spreadRadius: 2, - blurRadius: 10, - offset: - const Offset(0, 8), // changes position of shadow - ), - ], - ), - child: TicketWidget( - height: 335.h, - isCornerRounded: true, - width: double.infinity, - color: AppColor.plainWhite, - child: Padding( - padding: const EdgeInsets.fromLTRB(20.0, 30, 20, 10), - child: Column( - mainAxisSize: MainAxisSize.min, - children: [ - Column( - mainAxisSize: MainAxisSize.min, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - getIcon(type), - Gap(16.h), - TextWidget().text14W600(AppText.investment, - clr: AppColor.otpTextColor), - Gap(4.h), - TextWidget().text17W700("Name of investment", - clr: AppColor.otpTextColor), - Gap( - 4.h, - ), - TextWidget().text11W500('10/04/2024 22:04', - clr: AppColor.hintTextColor), - Gap( - 16.h, - ), - TextWidget().text20W900('+ SAR 100,000', - clr: AppColor.otpTextColor), - TextWidget().text13W500("+ \$100.00", - clr: AppColor.textLabelColor), - ], - ), - Gap( - 35.h, - ), - _buildBody(), - ], - ), - ), - ), - ), - ), - ), - ) - : Scaffold( - backgroundColor: AppColor.plainWhite, - appBar: AppBar( - backgroundColor: AppColor.plainWhite, - elevation: 0, - scrolledUnderElevation: 0.0, - centerTitle: true, - title: TextWidget().text20W700(AppText.walletDetailsTitle, - clr: AppColor.charcoalColor)), - body: Padding( - padding: const EdgeInsets.all(18.0), - child: Container( - width: 1.sw, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(22.r), - color: (type == 'Yield' || type == 'Refund') - ? AppColor.plainWhite - : Colors.transparent, - boxShadow: [ - BoxShadow( - color: AppColor.plainBlack.withOpacity(0.15), - spreadRadius: 2, - blurRadius: 10, - offset: const Offset(0, 8), // changes position of shadow - ), - ], - ), - child: (type == 'Yield' || type == 'Refund') - ? YieldDetailSection( - type: type, - ) - : TicketWidget( - height: (type == 'Investment' || - type == "confirm-investment") - ? 320.h - : double.infinity, - isCornerRounded: true, - width: double.infinity, - color: Colors.white, - child: Padding( - padding: const EdgeInsets.fromLTRB(20.0, 30, 20, 10), - child: Column( - mainAxisSize: MainAxisSize.min, - children: [ - Column( - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - getIcon(type), - Gap(16.h), - TextWidget().text14W600( - type == "confirm-investment" - ? "Investment" - : type, - clr: AppColor.otpTextColor), - Gap(4.h), - (type == "confirm-investment" || - type == 'Investment') - ? TextWidget().text17W700( - "Name of investment", - clr: AppColor.otpTextColor) - : const SizedBox(), - Gap(4.h), - TextWidget().text11W500('10/04/2024 22:04', - clr: AppColor.hintTextColor), - Gap(16.h), - TextWidget().text20W900('+ SAR 100,000', - clr: AppColor.otpTextColor), - (type == "confirm-investment" || - type == 'Investment') - ? TextWidget().text12W500("+ \$100.00", - clr: AppColor.textLabelColor) - : const SizedBox(), - ], - ), - Gap(35.h), - _buildBody(), - ], - ), - ), - ), - ), - ), - ); - } - - Widget _buildBody() { - if (type == 'Yield') { - return const SizedBox(); - } else if (type == 'Refund') { - return const SizedBox(); - } else if (type == 'Investment' || type == "confirm-investment") { - return Container( - width: double.infinity, - decoration: const BoxDecoration( - border: Border( - bottom: BorderSide( - color: AppColor.plainWhite, - width: 1.0, - ), - ), - ), - child: Padding( - padding: const EdgeInsets.symmetric(vertical: 15.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - TextWidget().text14W500( - AppText.paymentMethod, - clr: AppColor.portoflioCardTextColor, - ), - SizedBox( - width: 180.w, - child: TextWidget().text14W600( - 'Google/Apple Pay', - clr: AppColor.otpTextColor, - ), - ), - ], - ), - ), - ); - } else { - return Padding( - padding: const EdgeInsets.symmetric(horizontal: 8.0), - child: ListView.builder( - physics: const NeverScrollableScrollPhysics(), - shrinkWrap: true, - itemCount: titles.length, - itemBuilder: (context, index) { - if (type == 'Deposit' && titles[index] == 'Status') { - return Container(); - } else { - return Container( - width: double.infinity, - decoration: BoxDecoration( - border: Border( - bottom: BorderSide( - color: (index != titles.length - 1) - ? AppColor.plainBlack - : AppColor.plainWhite, - width: 1.0, - ), - ), - ), - child: Padding( - padding: const EdgeInsets.symmetric(vertical: 15.0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - TextWidget().text14W500(titles[index], - clr: AppColor.portoflioCardTextColor), - Expanded( - child: (titles[index] == 'Status') - ? TextWidget().text14W700(values[index], - clr: AppColor.onHoldTextColor, - txtAlign: TextAlign.end) - : TextWidget().text14W600(values[index], - clr: AppColor.otpTextColor, - txtAlign: TextAlign.end)), - ], - ), - ), - ); - } - }, - ), - ); - } - } -} diff --git a/lib/features/MainScreens/Wallet/presentation/pages/wallet_screen.dart b/lib/features/MainScreens/Wallet/presentation/pages/wallet_screen.dart deleted file mode 100644 index b049d82..0000000 --- a/lib/features/MainScreens/Wallet/presentation/pages/wallet_screen.dart +++ /dev/null @@ -1,187 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:flutter_screenutil/flutter_screenutil.dart'; -import 'package:gap/gap.dart'; -import 'package:tanami_app/core/routes/route_name.dart'; -import 'package:tanami_app/core/routes/routes.dart'; -import 'package:tanami_app/core/styles/app_color.dart'; -import 'package:tanami_app/core/styles/app_images.dart'; -import 'package:tanami_app/core/styles/app_text.dart'; -import 'package:tanami_app/shared/components/text_widget.dart'; - -import '../widgets/wallet_list_section.dart'; - -class WalletScreen extends StatelessWidget { - const WalletScreen({super.key}); - - @override - Widget build(BuildContext context) { - return Scaffold( - backgroundColor: Colors.white, - appBar: AppBar( - elevation: 0, - scrolledUnderElevation: 0.0, - automaticallyImplyLeading: false, - toolbarHeight: 260.h, - titleSpacing: 22.w, - title: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - TextWidget().text14W700( - AppText.walletTitle, - clr: AppColor.darkGreyColor, - ), - Gap(4.h), - TextWidget().text28W700('SAR 178,000', clr: AppColor.otpTextColor), - Gap(80.h) - ], - ), - flexibleSpace: FlexibleSpaceBar( - background: Stack( - children: [ - Image.asset( - AppImages.walletBg, - fit: BoxFit.fitWidth, - alignment: Alignment.topCenter, - ), - Align( - alignment: Alignment.bottomCenter, - child: Padding( - padding: const EdgeInsets.symmetric(horizontal: 20.0), - child: Container( - decoration: BoxDecoration( - color: AppColor.plainWhite.withOpacity(0.8), - borderRadius: - const BorderRadius.all(Radius.circular(20.0)), - ), - child: Padding( - padding: const EdgeInsets.symmetric( - horizontal: 20.0, vertical: 20.0), - child: IntrinsicHeight( - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - GestureDetector( - onTap: () { - goRouter.pushNamed(RouteName.depositScreen); - }, - child: Column( - mainAxisSize: MainAxisSize.min, - children: [ - Container( - decoration: const BoxDecoration( - shape: BoxShape.circle, - color: AppColor.plainBlack, - ), - child: Padding( - padding: const EdgeInsets.all(8.0), - child: Image.asset( - AppImages.depositIcon, - height: 20.h, - ), - ), - ), - TextWidget().text12W700(AppText.depositTitle, - clr: AppColor.textLabelColor), - ], - ), - ), - const VerticalDivider( - color: AppColor.plainBlack, - width: 20.0, - ), - GestureDetector( - onTap: () { - goRouter.pushNamed(RouteName.withdrawalScreen); - }, - child: Column( - mainAxisSize: MainAxisSize.min, - children: [ - Container( - decoration: const BoxDecoration( - shape: BoxShape.circle, - color: AppColor.plainBlack, - ), - child: Padding( - padding: const EdgeInsets.all(8.0), - child: Image.asset( - AppImages.withdrawIcon, - height: 20.h, - ), - ), - ), - TextWidget().text12W700(AppText.withdrawText, - clr: AppColor.textLabelColor) - ], - ), - ), - ], - ), - ), - ), - ), - ), - ) - ], - ), - ), - backgroundColor: Colors.transparent, - ), - body: Padding( - padding: const EdgeInsets.fromLTRB(18.0, 10.0, 18.0, 0.0), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - TextWidget() - .text11W500(AppText.day, clr: AppColor.hintTextColor), - Row( - children: [ - Container( - decoration: const BoxDecoration( - color: AppColor.fillColor, - borderRadius: BorderRadius.all(Radius.circular(12.0)), - ), - child: Padding( - padding: const EdgeInsets.all(8.0), - child: Image.asset( - AppImages.walletSearchIcon, - height: 20.h, - ), - ), - ), - SizedBox( - width: 5.w, - ), - GestureDetector( - onTap: () { - goRouter.pushNamed(RouteName.filterScreen); - }, - child: Container( - decoration: const BoxDecoration( - color: AppColor.fillColor, - borderRadius: BorderRadius.all(Radius.circular(12.0)), - ), - child: Padding( - padding: const EdgeInsets.all(8.0), - child: Image.asset( - AppImages.walletFilterIcon, - height: 20.h, - ), - ), - ), - ), - ], - ), - ], - ), - Gap(10.h), - const WalletListSection(), - ], - ), - ), - ); - } -} diff --git a/lib/features/MainScreens/Wallet/presentation/pages/withdrawal/withdrawalScreen.dart b/lib/features/MainScreens/Wallet/presentation/pages/withdrawal/withdrawalScreen.dart index 7ea00c1..edce4a7 100644 --- a/lib/features/MainScreens/Wallet/presentation/pages/withdrawal/withdrawalScreen.dart +++ b/lib/features/MainScreens/Wallet/presentation/pages/withdrawal/withdrawalScreen.dart @@ -47,40 +47,25 @@ class _WithdrawalScreenState extends State { child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Container( - width: 0.55.sw, - decoration: const BoxDecoration( - border: Border( - bottom: BorderSide(width: 1, color: Colors.grey))), - child: Row( + RichText( + text: TextSpan( children: [ - RichText( - text: TextSpan( - children: [ - TextSpan( - text: '${AppText.balance}: ', - style: GoogleFonts.dmSans( - color: Colors.grey, - fontSize: 12.0, - fontWeight: FontWeight.bold, - ), - ), - TextSpan( - text: 'SAR 178,000', - style: GoogleFonts.dmSans( - color: Colors.black, - fontSize: 14.0, - fontWeight: FontWeight.bold, - ), - ), - ], + TextSpan( + text: '${AppText.balance}: ', + style: GoogleFonts.dmSans( + color: Colors.grey, + fontSize: 12.sp, + fontWeight: FontWeight.bold, + ), + ), + TextSpan( + text: 'SAR 178,000', + style: GoogleFonts.dmSans( + color: Colors.black, + fontSize: 14.sp, + fontWeight: FontWeight.bold, ), ), - const Icon( - Icons.arrow_forward, - color: Colors.grey, - size: 15, - ) ], ), ), @@ -422,20 +407,20 @@ class _WithdrawalScreenState extends State { ), ), ), - bottomNavigationBar: GestureDetector( - onTap: () { - goRouter.pushNamed(RouteName.withdrawalPreview); - }, - child: Container( - margin: const EdgeInsets.all(10.0), - height: 65.h, - width: double.infinity, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(22.r), - color: const Color(0xFF004717), - ), - child: Padding( - padding: const EdgeInsets.symmetric(vertical: 20.0), + bottomNavigationBar: Padding( + padding: MediaQuery.of(context).viewInsets, + child: GestureDetector( + onTap: () { + goRouter.pushNamed(RouteName.withdrawalPreview); + }, + child: Container( + margin: const EdgeInsets.all(10.0), + height: 65.h, + width: double.infinity, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(22.r), + color: const Color(0xFF004717), + ), child: Center( child: Text( AppText.next, diff --git a/lib/features/changePassword/presentation/pages/change_password_layout.dart b/lib/features/changePassword/presentation/pages/change_password_layout.dart index 9aa3660..e72abb8 100644 --- a/lib/features/changePassword/presentation/pages/change_password_layout.dart +++ b/lib/features/changePassword/presentation/pages/change_password_layout.dart @@ -10,8 +10,9 @@ class ChangePasswordLayout extends StatelessWidget { @override Widget build(BuildContext context) { return const Scaffold( - backgroundColor: AppColor.plainWhite, - bottomNavigationBar: RestorePasswordBottomSection(), - body: RestorePasswordForm()); + backgroundColor: AppColor.plainWhite, + body: RestorePasswordForm(), + bottomNavigationBar: RestorePasswordBottomSection(), + ); } } diff --git a/lib/features/changePassword/presentation/pages/change_password_screen.dart b/lib/features/changePassword/presentation/pages/change_password_screen.dart index 5e6ad10..dd48824 100644 --- a/lib/features/changePassword/presentation/pages/change_password_screen.dart +++ b/lib/features/changePassword/presentation/pages/change_password_screen.dart @@ -1,9 +1,10 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:google_fonts/google_fonts.dart'; import '../../../../core/styles/app_color.dart'; import '../../../../core/styles/app_text.dart'; -import '../../../../shared/components/appbar_widget.dart'; import '../bloc/change_password_bloc.dart'; import 'change_password_layout.dart'; @@ -14,9 +15,19 @@ class ChangePasswordScreen extends StatelessWidget { Widget build(BuildContext context) { return Scaffold( backgroundColor: AppColor.plainWhite, - appBar: const AppBarWidget( - height: 75, - titleTxt: AppText.changePasswordText, + appBar: AppBar( + backgroundColor: Colors.white, + elevation: 0, + scrolledUnderElevation: 0.0, + centerTitle: true, + title: Text( + AppText.changePasswordText, + style: GoogleFonts.dmSans( + color: const Color(0xFF272727), + fontSize: 20.sp, + fontWeight: FontWeight.w700, + ), + ), ), resizeToAvoidBottomInset: false, body: MultiBlocProvider( diff --git a/lib/features/changePassword/presentation/widgets/change_password_bottom_section.dart b/lib/features/changePassword/presentation/widgets/change_password_bottom_section.dart index e849273..ce0e12d 100644 --- a/lib/features/changePassword/presentation/widgets/change_password_bottom_section.dart +++ b/lib/features/changePassword/presentation/widgets/change_password_bottom_section.dart @@ -9,7 +9,6 @@ import '../../../../core/routes/routes.dart'; import '../../../../core/styles/app_color.dart'; import '../../../../core/styles/app_text.dart'; import '../../../../shared/components/button_widget.dart'; -import '../../../../shared/components/text_widget.dart'; import '../bloc/change_password_bloc.dart'; import '../bloc/change_password_event.dart'; import '../bloc/change_password_state.dart'; @@ -87,13 +86,15 @@ class RestorePasswordBottomSection extends StatelessWidget { }, ), const Gap(5), - ButtonWidget().textBtn( - function: () { - goRouter.pop(); - }, - text: TextWidget().text14W700(AppText.backText, - clr: AppColor.textLabelColor, - textDecoration: TextDecoration.underline)), + ButtonWidget().textBorderBtn( + clr: Colors.white, + borderClr: AppColor.txtBorderColor, + function: () { + goRouter.pop(); + }, + text: AppText.cancelText, + ), + const Gap(10), ], ); } diff --git a/lib/features/changePassword/presentation/widgets/change_password_form.dart b/lib/features/changePassword/presentation/widgets/change_password_form.dart index a9f5d59..15fdfb1 100644 --- a/lib/features/changePassword/presentation/widgets/change_password_form.dart +++ b/lib/features/changePassword/presentation/widgets/change_password_form.dart @@ -69,13 +69,14 @@ class RestorePasswordForm extends StatelessWidget { Align( alignment: Alignment.topRight, child: ButtonWidget().textBtn( - function: () { - goRouter.pushNamed( - RouteName.forgotPasswordPhoneVerificationScreen); - }, - text: TextWidget().text15W400(AppText.forgorPassword, - clr: AppColor.forgotPassButtonColor, - textDecoration: TextDecoration.underline)), + function: () { + goRouter.pushNamed( + RouteName.forgotPasswordPhoneVerificationScreen); + }, + text: TextWidget().text15W400(AppText.forgotPassword, + clr: AppColor.forgotPassButtonColor, + textDecoration: TextDecoration.underline), + ), ), const Gap(20), ], diff --git a/lib/features/login/presentation/widgets/bottom_section.dart b/lib/features/login/presentation/widgets/bottom_section.dart index 8c2f410..f1c3919 100644 --- a/lib/features/login/presentation/widgets/bottom_section.dart +++ b/lib/features/login/presentation/widgets/bottom_section.dart @@ -38,7 +38,7 @@ class BottomSection extends StatelessWidget { goRouter .pushNamed(RouteName.forgotPasswordPhoneVerificationScreen); }, - text: TextWidget().text15W400(AppText.forgorPassword, + text: TextWidget().text15W400(AppText.forgotPassword, clr: AppColor.forgotPassButtonColor, textDecoration: TextDecoration.underline)), ),