From ae5c2fe0f09beddd03bb0162c1885be8bacee659 Mon Sep 17 00:00:00 2001 From: jayesh Date: Tue, 23 Jul 2024 13:06:35 +0530 Subject: [PATCH] new splash screen, deposit screen --- .../settings_screen/svg/wallet_settings.svg | 3 + assets/language/ar.json | 11 +- assets/language/en.json | 8 +- lib/core/routes/route_name.dart | 3 + lib/core/routes/routes.dart | 10 +- lib/core/styles/app_images.dart | 2 + lib/core/styles/app_text.dart | 4 + .../presentation/pages/settings_layout.dart | 6 + .../widgets/add_bank_details_section.dart | 47 +++++++ .../widgets/user_account_section.dart | 110 ++++++++++++++++ .../pages/withdrawal/withdrawal_screen.dart | 38 ++++-- .../pages/add_bank_details_screen.dart | 119 ++++++++++++++++++ 12 files changed, 345 insertions(+), 16 deletions(-) create mode 100644 assets/images/settings_screen/svg/wallet_settings.svg create mode 100644 lib/features/MainScreens/Settings/presentation/widgets/add_bank_details_section.dart create mode 100644 lib/features/MainScreens/Settings/presentation/widgets/user_account_section.dart create mode 100644 lib/features/bankDetails/presentation/pages/add_bank_details_screen.dart diff --git a/assets/images/settings_screen/svg/wallet_settings.svg b/assets/images/settings_screen/svg/wallet_settings.svg new file mode 100644 index 0000000..c0d8a1c --- /dev/null +++ b/assets/images/settings_screen/svg/wallet_settings.svg @@ -0,0 +1,3 @@ + + + diff --git a/assets/language/ar.json b/assets/language/ar.json index 7d4912c..0a10353 100644 --- a/assets/language/ar.json +++ b/assets/language/ar.json @@ -112,7 +112,7 @@ "walletDetailsTitle": "تفاصيل", "withdrawalScreenTitle": "أدخل تفاصيل البنك", "depositScreenTitle": "إخطار الإيداع", - "status": "الحالة", + "status": "الحالة", "paymentMethod": "طريقة الدفع", "accountName": "اسم الحساب", "accountHolderName": "اسم صاحب الحساب/المستفيد", @@ -269,10 +269,11 @@ "accountNo" : "رقم الحساب", "swiftCode" :"رمز السرعة", "bankAddress" : "عنوان البنك", - "clientId" : "معرف العميل" - - - + "clientId" : "معرف العميل", + "bankDetails" : "التفاصيل المصرفية", + "addBankDetails" : "إضافة تفاصيل البنك", + "updateBankDetails" : "تحديث تفاصيل البنك", + "yourAccountDetails" : "تفاصيل حسابك" } \ No newline at end of file diff --git a/assets/language/en.json b/assets/language/en.json index 958b35a..25bc0fb 100644 --- a/assets/language/en.json +++ b/assets/language/en.json @@ -110,7 +110,7 @@ "refund": "Refund", "investment": "Investment", "walletDetailsTitle": "Details", - "withdrawalScreenTitle": "Enter bank details", + "withdrawalScreenTitle": "Enter bank details", "depositScreenTitle": "Deposit notification", "status": "Status", "paymentMethod": "Payment Method", @@ -269,7 +269,11 @@ "accountNo" : "Account No.", "swiftCode" :"SWIFT Code", "bankAddress" : "Bank Address", - "clientId" : "Client ID" + "clientId" : "Client ID", + "bankDetails" : "Bank details", + "addBankDetails" : "Add bank details", + "updateBankDetails" : "Update bank details", + "yourAccountDetails" : "Your account Details" diff --git a/lib/core/routes/route_name.dart b/lib/core/routes/route_name.dart index 2142f01..9470091 100644 --- a/lib/core/routes/route_name.dart +++ b/lib/core/routes/route_name.dart @@ -78,4 +78,7 @@ class RouteName { static const String investDetailScreen = "investDetailScreen"; static const String investPaymentScreen = "investPaymentScreen"; static const String confirmInvestScreen = "confirmInvestScreen"; + + //Bank Details + static const String addBankDetailsScreen = "addBankDetailsScreen"; } diff --git a/lib/core/routes/routes.dart b/lib/core/routes/routes.dart index cb9a350..580a789 100644 --- a/lib/core/routes/routes.dart +++ b/lib/core/routes/routes.dart @@ -33,6 +33,7 @@ import 'package:tanami_app/shared/components/no_internet.dart'; import '../../features/MainScreens/Wallet/presentation/pages/deposit/deposit_completed_screen.dart'; import '../../features/MainScreens/main_screen.dart'; +import '../../features/bankDetails/presentation/pages/add_bank_details_screen.dart'; import '../../features/forgotPassword/presentation/pages/restore_password_phone_verification_screen.dart'; import '../../features/login/presentation/pages/login_screen.dart'; import '../../features/register/presentation/pages/register_user_details_screen.dart'; @@ -53,7 +54,7 @@ final goRouter = GoRouter( path: RouteName.splashScreen, builder: (context, state) { // context.read().add(GetCountry()); - return const SplashScreen(); + return const SplashScreen(); //const MainScreen(); }, routes: [ GoRoute( @@ -139,6 +140,13 @@ final goRouter = GoRouter( return const AcademyDetailsScreen(); }, ), + GoRoute( + name: RouteName.addBankDetailsScreen, + path: RouteName.addBankDetailsScreen, + builder: (context, state) { + return const AddBankDetails(); + }, + ), GoRoute( name: RouteName.pinScreen, path: "${RouteName.pinScreen}/:fromScreen", diff --git a/lib/core/styles/app_images.dart b/lib/core/styles/app_images.dart index 85e5a7f..a88fc81 100644 --- a/lib/core/styles/app_images.dart +++ b/lib/core/styles/app_images.dart @@ -118,6 +118,8 @@ class AppImages { 'assets/images/invest_screen/svg/time_square.svg'; static const String applePayIcon = 'assets/images/invest_screen/svg/apple_pay.svg'; + static const String walletSettingsIcon = + 'assets/images/settings_screen/svg/wallet_settings.svg'; //No Internet static const String noInternetImage = diff --git a/lib/core/styles/app_text.dart b/lib/core/styles/app_text.dart index 85378b9..5824580 100644 --- a/lib/core/styles/app_text.dart +++ b/lib/core/styles/app_text.dart @@ -236,6 +236,8 @@ class AppText { static const String swiftCode = "swiftCode"; static const String bankAddress = "bankAddress"; static const String clientId = "clientId"; + static const String updateBankDetails = "updateBankDetails"; + static const String yourAccountDetails = "yourAccountDetails"; //Settings static const String settingsText = "settingsText"; @@ -266,6 +268,8 @@ class AppText { static const String changePasswordText = "changePasswordText"; static const String newPasswordText = "newPasswordText"; static const String currentPsswordText = "currentPsswordText"; + static const String bankDetails = "bankDetails"; + static const String addBankDetails = "addBankDetails"; //Contact Admin static const String byPhoneText = "byPhoneText"; diff --git a/lib/features/MainScreens/Settings/presentation/pages/settings_layout.dart b/lib/features/MainScreens/Settings/presentation/pages/settings_layout.dart index 349615f..78d493d 100644 --- a/lib/features/MainScreens/Settings/presentation/pages/settings_layout.dart +++ b/lib/features/MainScreens/Settings/presentation/pages/settings_layout.dart @@ -3,10 +3,12 @@ import 'package:gap/gap.dart'; import 'package:tanami_app/core/styles/app_color.dart'; import 'package:tanami_app/features/MainScreens/Settings/presentation/widgets/support_settings_section.dart'; +import '../widgets/add_bank_details_section.dart'; import '../widgets/general_settings_section.dart'; import '../widgets/kyc_card.dart'; import '../widgets/privacy_settings_section.dart'; import '../widgets/settings_bottom_section.dart'; +import '../widgets/user_account_section.dart'; class SettingsLayout extends StatelessWidget { const SettingsLayout({super.key}); @@ -19,10 +21,14 @@ class SettingsLayout extends StatelessWidget { child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ + const UserAccountSection(), + const Gap(15), kycCard(context), const Gap(15), const GeneralSettingsSection(), const Gap(15), + const BankDetailsSection(), + const Gap(15), const PrivacySettingsSection(), const Gap(15), const SupportSettingsSection(), diff --git a/lib/features/MainScreens/Settings/presentation/widgets/add_bank_details_section.dart b/lib/features/MainScreens/Settings/presentation/widgets/add_bank_details_section.dart new file mode 100644 index 0000000..337502b --- /dev/null +++ b/lib/features/MainScreens/Settings/presentation/widgets/add_bank_details_section.dart @@ -0,0 +1,47 @@ +import 'package:flutter/material.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 '../../../../../core/utils/language/localizations_delegate.dart'; +import 'settings_list_tile_item.dart'; + +class BankDetailsSection extends StatelessWidget { + const BankDetailsSection({super.key}); + + @override + Widget build(BuildContext context) { + var localizations = AppLocalizations.of(context); + return Padding( + padding: const EdgeInsets.symmetric( + horizontal: 16, + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + TextWidget().text14W600( + localizations.translate(AppText.addBankDetails), + clr: AppColor.hintTextColor, + ), + const Gap(8), + SettingsListItem( + onTapFunc: () { + goRouter.pushNamed(RouteName.addBankDetailsScreen); + }, + icon: AppImages.walletSettingsIcon, + title: AppText.bankDetails, + trailing: "", + ), + const Gap(10), + const Divider( + color: AppColor.academyCardTextColor, + ), + ], + ), + ); + } +} diff --git a/lib/features/MainScreens/Settings/presentation/widgets/user_account_section.dart b/lib/features/MainScreens/Settings/presentation/widgets/user_account_section.dart new file mode 100644 index 0000000..977ef0a --- /dev/null +++ b/lib/features/MainScreens/Settings/presentation/widgets/user_account_section.dart @@ -0,0 +1,110 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:gap/gap.dart'; +import 'package:tanami_app/core/styles/app_text.dart'; +import 'package:tanami_app/shared/components/text_widget.dart'; + +import '../../../../../Globalconst.dart'; +import '../../../../../core/utils/language/localizations_delegate.dart'; + +class UserAccountSection extends StatelessWidget { + const UserAccountSection({super.key}); + + @override + Widget build(BuildContext context) { + var localizations = AppLocalizations.of(context); + return Padding( + padding: const EdgeInsets.symmetric( + horizontal: 16, + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + width: 1.sw, + padding: const EdgeInsets.only( + left: 12, + top: 12, + bottom: 12, + right: 12, + ), + decoration: ShapeDecoration( + color: const Color(0xFFF6F6F6), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(22), + ), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Expanded( + child: SizedBox( + height: 61, + child: Row( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Container( + width: 41, + height: 41, + padding: const EdgeInsets.all(8), + decoration: ShapeDecoration( + color: const Color(0xFFDAEEE0), + shape: RoundedRectangleBorder( + side: const BorderSide( + width: 1, color: Color(0xFF709C81)), + borderRadius: BorderRadius.circular(22), + ), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + TextWidget().text15W500( + 'AN', + clr: const Color(0xFF066123), + ) + ], + ), + ), + const Gap(12), + Column( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + TextWidget().text14W500( + Globalconst.firstName.isEmpty + ? "User" + : Globalconst.firstName, + clr: const Color(0xFF191B1E), + ), + const Gap(4), + TextWidget().text11W500( + localizations + .translate(AppText.yourAccountDetails), + clr: const Color(0xFF8D8D8D), + ), + ], + ), + const Spacer(), + const Icon( + Icons.arrow_forward_ios_outlined, + color: Color(0xFF363636), + ) + ], + ), + ), + ), + ], + ), + ) + ], + ), + ); + } +} diff --git a/lib/features/MainScreens/Wallet/presentation/pages/withdrawal/withdrawal_screen.dart b/lib/features/MainScreens/Wallet/presentation/pages/withdrawal/withdrawal_screen.dart index fa0ee48..c67404d 100644 --- a/lib/features/MainScreens/Wallet/presentation/pages/withdrawal/withdrawal_screen.dart +++ b/lib/features/MainScreens/Wallet/presentation/pages/withdrawal/withdrawal_screen.dart @@ -7,6 +7,7 @@ import 'package:tanami_app/core/routes/route_name.dart'; import 'package:tanami_app/core/routes/routes.dart'; import 'package:tanami_app/core/styles/app_text.dart'; +import '../../../../../../core/styles/app_color.dart'; import '../../../../../../core/utils/language/localizations_delegate.dart'; import '../../../../../../core/utils/text_formatter/comma_input_text_formatter.dart'; @@ -316,13 +317,34 @@ class _WithdrawalScreenState extends State { mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.start, children: [ - Text( - localizations.translate(AppText.withdrawDetails), - style: GoogleFonts.dmSans( - color: Colors.black, - fontSize: 15.sp, - fontWeight: FontWeight.w700, - ), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + localizations + .translate(AppText.withdrawDetails), + style: GoogleFonts.dmSans( + color: Colors.black, + fontSize: 15.sp, + fontWeight: FontWeight.w700, + ), + ), + InkWell( + onTap: () { + goRouter.pushNamed( + RouteName.addBankDetailsScreen); + }, + child: Text( + localizations + .translate(AppText.updateBankDetails), + style: GoogleFonts.dmSans( + color: AppColor.textLabelColor, + fontSize: 13.sp, + fontWeight: FontWeight.w500, + decoration: TextDecoration.underline), + ), + ), + ], ), SizedBox( height: 3.h, @@ -375,7 +397,7 @@ class _WithdrawalScreenState extends State { fontWeight: FontWeight.w400, ), decoration: InputDecoration( - hintText: 'Value', + hintText: titles[index], hintStyle: GoogleFonts.dmSans( color: const Color(0xFFC6C6C6), fontSize: 16.sp, diff --git a/lib/features/bankDetails/presentation/pages/add_bank_details_screen.dart b/lib/features/bankDetails/presentation/pages/add_bank_details_screen.dart new file mode 100644 index 0000000..fa156a6 --- /dev/null +++ b/lib/features/bankDetails/presentation/pages/add_bank_details_screen.dart @@ -0,0 +1,119 @@ +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 '../../../../core/routes/routes.dart'; +import '../../../../core/styles/app_text.dart'; +import '../../../../core/utils/language/localizations_delegate.dart'; +import '../../../../shared/components/form_label_textfield.dart'; + +class AddBankDetails extends StatelessWidget { + const AddBankDetails({super.key}); + + @override + Widget build(BuildContext context) { + TextEditingController accountNameText = TextEditingController(); + TextEditingController accountNoText = TextEditingController(); + TextEditingController ibanText = TextEditingController(); + TextEditingController swiftCodeText = TextEditingController(); + TextEditingController bankNameText = TextEditingController(); + TextEditingController bankAddressText = TextEditingController(); + var localizations = AppLocalizations.of(context); + return Scaffold( + backgroundColor: Colors.white, + bottomNavigationBar: Padding( + padding: MediaQuery.of(context).viewInsets, + child: GestureDetector( + onTap: () { + goRouter.pop(); + }, + 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( + localizations.translate(AppText.submitText), + style: GoogleFonts.dmSans( + color: Colors.white, + fontSize: 14.sp, + fontWeight: FontWeight.w700, + ), + ), + ), + ), + ), + ), + appBar: AppBar( + backgroundColor: Colors.white, + elevation: 0, + scrolledUnderElevation: 0.0, + centerTitle: true, + title: Text( + localizations.translate(AppText.addBankDetails), + style: GoogleFonts.dmSans( + color: const Color(0xFF272727), + fontSize: 20.sp, + fontWeight: FontWeight.w700, + ), + ), + ), + body: Padding( + padding: const EdgeInsets.all(12.0), + child: SingleChildScrollView( + child: Column( + children: [ + const Gap(20), + FormLabelTextField( + hintText: localizations.translate(AppText.accountName), + title: localizations.translate(AppText.accountName), + type: "first name", + textEditingController: accountNameText, + ), + const Gap(20), + FormLabelTextField( + hintText: localizations.translate(AppText.accountNo), + title: localizations.translate(AppText.accountNo), + type: "first name", + textEditingController: accountNoText, + ), + const Gap(20), + FormLabelTextField( + hintText: localizations.translate(AppText.iban), + title: localizations.translate(AppText.iban), + type: "first name", + textEditingController: ibanText, + ), + const Gap(20), + FormLabelTextField( + hintText: localizations.translate(AppText.swiftCode), + title: localizations.translate(AppText.swiftCode), + type: "first name", + textEditingController: swiftCodeText, + ), + const Gap(20), + FormLabelTextField( + hintText: localizations.translate(AppText.bankName), + title: localizations.translate(AppText.bankName), + type: "first name", + textEditingController: bankNameText, + ), + const Gap(20), + FormLabelTextField( + hintText: localizations.translate(AppText.bankAddress), + title: localizations.translate(AppText.bankAddress), + type: "first name", + textEditingController: bankAddressText, + ), + ], + ), + ), + ), + ); + } +}