diff --git a/assets/images/wallet_screen/d_step_1.svg b/assets/images/wallet_screen/d_step_1.svg index 471f315..a03e73e 100644 --- a/assets/images/wallet_screen/d_step_1.svg +++ b/assets/images/wallet_screen/d_step_1.svg @@ -1,4 +1,4 @@ - - - + + + diff --git a/assets/images/wallet_screen/d_step_2.svg b/assets/images/wallet_screen/d_step_2.svg index 8ac4ee7..9d95563 100644 --- a/assets/images/wallet_screen/d_step_2.svg +++ b/assets/images/wallet_screen/d_step_2.svg @@ -1,4 +1,4 @@ - - - + + + diff --git a/assets/images/wallet_screen/d_step_3.svg b/assets/images/wallet_screen/d_step_3.svg index dcf91fd..ec56a08 100644 --- a/assets/images/wallet_screen/d_step_3.svg +++ b/assets/images/wallet_screen/d_step_3.svg @@ -1,4 +1,4 @@ - - - + + + diff --git a/assets/images/wallet_screen/deposit_check.svg b/assets/images/wallet_screen/deposit_check.svg new file mode 100644 index 0000000..6acb3ab --- /dev/null +++ b/assets/images/wallet_screen/deposit_check.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/images/wallet_screen/deposit_step_complete_1.svg b/assets/images/wallet_screen/deposit_step_complete_1.svg new file mode 100644 index 0000000..5699891 --- /dev/null +++ b/assets/images/wallet_screen/deposit_step_complete_1.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/assets/images/wallet_screen/deposit_step_complete_2.svg b/assets/images/wallet_screen/deposit_step_complete_2.svg new file mode 100644 index 0000000..329f56d --- /dev/null +++ b/assets/images/wallet_screen/deposit_step_complete_2.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/assets/images/wallet_screen/deposit_step_complete_3.svg b/assets/images/wallet_screen/deposit_step_complete_3.svg new file mode 100644 index 0000000..c256c67 --- /dev/null +++ b/assets/images/wallet_screen/deposit_step_complete_3.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/assets/images/welcome_screen/Tanami_Capital_Logo.svg b/assets/images/welcome_screen/Tanami_Capital_Logo.svg new file mode 100644 index 0000000..fa0d6f2 --- /dev/null +++ b/assets/images/welcome_screen/Tanami_Capital_Logo.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/welcome_screen/png/First_Onboarding.png b/assets/images/welcome_screen/png/First_Onboarding.png index 44f32a8..c8a3fab 100644 Binary files a/assets/images/welcome_screen/png/First_Onboarding.png and b/assets/images/welcome_screen/png/First_Onboarding.png differ diff --git a/assets/images/welcome_screen/png/Second_Onboarding.png b/assets/images/welcome_screen/png/Second_Onboarding.png index 35de1b0..5a23095 100644 Binary files a/assets/images/welcome_screen/png/Second_Onboarding.png and b/assets/images/welcome_screen/png/Second_Onboarding.png differ diff --git a/assets/images/welcome_screen/png/Third_Onboarding.png b/assets/images/welcome_screen/png/Third_Onboarding.png index f2f344e..a60f290 100644 Binary files a/assets/images/welcome_screen/png/Third_Onboarding.png and b/assets/images/welcome_screen/png/Third_Onboarding.png differ diff --git a/assets/language/ar.json b/assets/language/ar.json index 92a4dc0..7d4912c 100644 --- a/assets/language/ar.json +++ b/assets/language/ar.json @@ -1,12 +1,12 @@ { "splashVersionText": "التطبيق: v.", - "splashCopyrightText": "© 2024 Tanami", - "welcomeTitle1Text": "تانامي تقدم", + "splashCopyrightText": "© 2024 Tanami", + "welcomeTitle1Text": "يوفر Tanami الوصول إلى", "welcomeTitle2Text": "استثمر مع", - "welcomeTitle3Text": "ابدأ الاستثمار اليوم", - "welcomeDescription1Text": "الوصول إلى استثمارات خاصة عالمية حصرية من الدرجة الأولى", - "welcomeDescription2Text": "خبراء استثمار ذوو خبرة مع سجل حافل طويل الأمد", - "welcomeDescription3Text": "بمبلغ 1000 ريال سعودي فقط", + "welcomeTitle3Text": "بمبلغ 1,000 ريال سعودي فقط", + "welcomeDescription1Text": "استثمارات خاصة عالمية حصرية", + "welcomeDescription2Text": "خبراء الاستثمار ذوي الخبرة مع سجل حافل طويل الأمد", + "welcomeDescription3Text": "ابدأ الاستثمار اليوم", "loginText": "تسجيل الدخول", "signUpText": "اشتراك", "welcomeText": "مرحبا بعودتك!", @@ -108,7 +108,7 @@ "withdrawal": "انسحاب", "yield": "عائد", "refund": "استرداد", - "investment": " ", + "investment": "استثمار", "walletDetailsTitle": "تفاصيل", "withdrawalScreenTitle": "أدخل تفاصيل البنك", "depositScreenTitle": "إخطار الإيداع", @@ -252,7 +252,27 @@ "passwordChangedSucessfully" : "تم تغيير الرقم السري بنجاح!", "passwordResetSucessful" : "تمت إعادة تعيين كلمة المرور بنجاح!", "otpSendSuccessfulText" : "تم إرسال OTP بنجاح!", - "successfulText" : "ناجح !", - "portfolioBottomText" : "مَلَفّ" + "successfulText" : "ناجح !", + "portfolioBottomText" : "مَلَفّ", + "inOrderForYouToCompleteBankTransfers" : "لكي تتمكن من إكمال التحويل المصرفي، ستحتاج إلى إنشاء إشعار إيداع وتحويل الأموال من محفظتك مباشرة إلى حسابك المصرفي.", + "tanamiWillNotifyUponReceiptFunds" : "سوف يقوم Tanami بإخطارك عند استلام أموالك وسيظهر في رصيد محفظتك بعد 3-4 أيام عمل من بدء التحويل.", + "pleaseCompleteTheBelowSteps" : "يرجى إكمال الخطوات أدناه", + "insertTheAmountYouWouldLikeToTransfer" : "أدخل المبلغ الذي ترغب في تحويله.", + "copyTheBankDetailsYourTanamiAccountShownNextPage" : "انسخ التفاصيل المصرفية لحساب Tanami الخاص بك والموضحة في الصفحة التالية. تأكد من ملاحظة المعرف المرجعي.", + "transferTheFundsDirectlyFromYourBankAccount": "تحويل الأموال مباشرة من حسابك المصرفي.", + "copyTheBankDetailsOfYourTanamiAccount" : "انسخ التفاصيل المصرفية لحساب Tanami الخاص بك. تأكد من ملاحظة المعرف المرجعي/معرف العميل.", + "youAreAllSet" : "أنت جاهز تمامًا!", + "depositNotificationCreated" : "تم إنشاء إشعار الإيداع!", + "amountDeposited" : "المبلغ المودع", + "pleaseEnsureTheFundsAreTransferredFromBank" : "يرجى التأكد من تحويل الأموال من البنك الذي تتعامل معه خلال 14 يومًا من إنشاء إشعار الإيداع.", + "manageDepositNotifications" : "إدارة إشعارات الإيداع", + "accountNo" : "رقم الحساب", + "swiftCode" :"رمز السرعة", + "bankAddress" : "عنوان البنك", + "clientId" : "معرف العميل" + + + + } \ No newline at end of file diff --git a/assets/language/en.json b/assets/language/en.json index 5e32c29..958b35a 100644 --- a/assets/language/en.json +++ b/assets/language/en.json @@ -1,12 +1,12 @@ { "splashVersionText": "APP: v.", - "splashCopyrightText": "© 2024 Tanami", - "welcomeTitle1Text": "Tanami offers", + "splashCopyrightText": "© 2024 Tanami", + "welcomeTitle1Text": "Tanami offers access to", "welcomeTitle2Text": "Invest alongside", - "welcomeTitle3Text": "Start investing today", - "welcomeDescription1Text": "access to best-in-class, exclusive, global private investments", - "welcomeDescription2Text": "experienced investment experts with a long-standing track record", - "welcomeDescription3Text": "with only SAR 1,000", + "welcomeTitle3Text": "With only SAR 1,000", + "welcomeDescription1Text": "Exclusive, Global Private Investments", + "welcomeDescription2Text": "Experienced Investment Experts with a long-standing track record", + "welcomeDescription3Text": "Start Investing Today ", "loginText": "Log In", "signUpText": "Sign Up", "welcomeText": "Welcome back!", @@ -113,7 +113,7 @@ "withdrawalScreenTitle": "Enter bank details", "depositScreenTitle": "Deposit notification", "status": "Status", - "paymentMethod": "Payment Method", + "paymentMethod": "Payment Method", "accountName": "Account Name", "accountHolderName": "Account Holder Name/Beneficiary Name", "iban": "IBAN", @@ -253,6 +253,26 @@ "passwordResetSucessful" : "Password reset successful!", "otpSendSuccessfulText" : "OTP send successful !", "successfulText" : "successful !", - "portfolioBottomText" : "Portfolio" + "portfolioBottomText" : "Portfolio", + "inOrderForYouToCompleteBankTransfers" : "In order for you to complete a bank transfer, you need will need to create a deposit notification and transfer funds from your wallet, directly into your bank account.", + "tanamiWillNotifyUponReceiptFunds" : "Tanami will notify you upon receipt of your funds and it will appear in your wallet balance 3-4 business days after initiating the transfer.", + "pleaseCompleteTheBelowSteps" : "Please complete the below steps", + "insertTheAmountYouWouldLikeToTransfer" : "Insert the amount you would like to transfer.", + "copyTheBankDetailsYourTanamiAccountShownNextPage" : "Copy the bank details of your Tanami account shown on the next page. Make sure to keep note of the reference ID.", + "transferTheFundsDirectlyFromYourBankAccount": "Transfer the funds directly from your bank account.", + "copyTheBankDetailsOfYourTanamiAccount" : "Copy the bank details of your Tanami account. Make sure to keep note of the Reference ID/ Client ID.", + "youAreAllSet" : "You're all set!", + "depositNotificationCreated" : "Deposit Notification Created!", + "amountDeposited" : "Amount Deposited", + "pleaseEnsureTheFundsAreTransferredFromBank" : "Please ensure the funds are transferred from your bank within 14 days of creating the deposit notification.", + "manageDepositNotifications" : "Manage Deposit Notifications", + "accountNo" : "Account No.", + "swiftCode" :"SWIFT Code", + "bankAddress" : "Bank Address", + "clientId" : "Client ID" + + + + } \ No newline at end of file diff --git a/lib/core/routes/route_name.dart b/lib/core/routes/route_name.dart index ba8597a..2142f01 100644 --- a/lib/core/routes/route_name.dart +++ b/lib/core/routes/route_name.dart @@ -45,6 +45,7 @@ class RouteName { static const String depositPreview = 'depositPreview'; static const String selectDepositMethodScreen = 'selectDepositMethodScreen'; static const String depositStepScreen = 'depositStepScreen'; + static const String depositCompleteScreen = 'depositCompleteScreen'; //Biometric static const String biometricScreen = 'biometricScreen'; diff --git a/lib/core/routes/routes.dart b/lib/core/routes/routes.dart index 99d19fc..cb9a350 100644 --- a/lib/core/routes/routes.dart +++ b/lib/core/routes/routes.dart @@ -31,6 +31,7 @@ import 'package:tanami_app/features/securePin/presentation/pages/pin_screen.dart import 'package:tanami_app/features/welcome/presentation/pages/weclome_screen.dart'; 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/forgotPassword/presentation/pages/restore_password_phone_verification_screen.dart'; import '../../features/login/presentation/pages/login_screen.dart'; @@ -225,6 +226,13 @@ final goRouter = GoRouter( return const DepositStepScreen(); }, ), + GoRoute( + name: RouteName.depositCompleteScreen, + path: RouteName.depositCompleteScreen, + builder: (context, state) { + return const DepositeCompleteScreen(); + }, + ), GoRoute( name: RouteName.depositPreview, path: RouteName.depositPreview, diff --git a/lib/core/styles/app_images.dart b/lib/core/styles/app_images.dart index 7acdbdc..85e5a7f 100644 --- a/lib/core/styles/app_images.dart +++ b/lib/core/styles/app_images.dart @@ -6,6 +6,8 @@ class AppImages { "assets/images/welcome_screen/svg/Tanami_Capital_Splash_Logo.svg"; //Welcome + static const String welcomeLogo1 = + "assets/images/welcome_screen/Tanami_Capital_Logo.svg"; static const String welcomeLogo = "assets/images/welcome_screen/svg/Tanami_Capital_Logo.svg"; static const String firstWelcome = @@ -142,4 +144,12 @@ class AppImages { static const String dStep1Icon = 'assets/images/wallet_screen/d_step_1.svg'; static const String dStep2Icon = 'assets/images/wallet_screen/d_step_2.svg'; static const String dStep3Icon = 'assets/images/wallet_screen/d_step_3.svg'; + static const String dStepCount1Icon = + 'assets/images/wallet_screen/deposit_step_complete_1.svg'; + static const String dStep2CountIcon = + 'assets/images/wallet_screen/deposit_step_complete_2.svg'; + static const String dStep3CountIcon = + 'assets/images/wallet_screen/deposit_step_complete_3.svg'; + static const String depositCheckIcon = + 'assets/images/wallet_screen/deposit_check.svg'; } diff --git a/lib/core/styles/app_text.dart b/lib/core/styles/app_text.dart index b4da19c..85378b9 100644 --- a/lib/core/styles/app_text.dart +++ b/lib/core/styles/app_text.dart @@ -212,6 +212,30 @@ class AppText { static const String byDate = "byDate"; static const String byAction = "byAction"; static const String byStatus = "byStatus"; + static const String inOrderForYouToCompleteBankTransfers = + "inOrderForYouToCompleteBankTransfers"; + static const String tanamiWillNotifyUponReceiptFunds = + "tanamiWillNotifyUponReceiptFunds"; + static const String pleaseCompleteTheBelowSteps = + "pleaseCompleteTheBelowSteps"; + static const String insertTheAmountYouWouldLikeToTransfer = + "insertTheAmountYouWouldLikeToTransfer"; + static const String copyTheBankDetailsYourTanamiAccountShownNextPage = + "copyTheBankDetailsYourTanamiAccountShownNextPage"; + static const String transferTheFundsDirectlyFromYourBankAccount = + "transferTheFundsDirectlyFromYourBankAccount"; + static const String copyTheBankDetailsOfYourTanamiAccount = + "copyTheBankDetailsOfYourTanamiAccount"; + static const String youAreAllSet = "youAreAllSet"; + static const String depositNotificationCreated = "depositNotificationCreated"; + static const String amountDeposited = "amountDeposited"; + static const String pleaseEnsureTheFundsAreTransferredFromBank = + "pleaseEnsureTheFundsAreTransferredFromBank"; + static const String manageDepositNotifications = "manageDepositNotifications"; + static const String accountNo = "accountNo"; + static const String swiftCode = "swiftCode"; + static const String bankAddress = "bankAddress"; + static const String clientId = "clientId"; //Settings static const String settingsText = "settingsText"; diff --git a/lib/features/MainScreens/Academy/presentation/pages/academy_layout.dart b/lib/features/MainScreens/Academy/presentation/pages/academy_layout.dart index 5ec213f..fda94a9 100644 --- a/lib/features/MainScreens/Academy/presentation/pages/academy_layout.dart +++ b/lib/features/MainScreens/Academy/presentation/pages/academy_layout.dart @@ -13,7 +13,7 @@ class AcademyLayout extends StatelessWidget { body: ListView.builder( itemCount: data.length, itemBuilder: (context, index) { - return academyCard(data[index]); + return academyCard(data[index], context); }, ), ); diff --git a/lib/features/MainScreens/Academy/presentation/widgets/academy_card.dart b/lib/features/MainScreens/Academy/presentation/widgets/academy_card.dart index 0fc68c3..26692cb 100644 --- a/lib/features/MainScreens/Academy/presentation/widgets/academy_card.dart +++ b/lib/features/MainScreens/Academy/presentation/widgets/academy_card.dart @@ -3,12 +3,16 @@ import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:gap/gap.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/routes/route_name.dart'; import '../../../../../core/routes/routes.dart'; +import '../../../../../core/utils/language/localizations_delegate.dart'; + +Widget academyCard(dynamic data, BuildContext context) { + var localizations = AppLocalizations.of(context); -Widget academyCard(dynamic data) { return Padding( padding: const EdgeInsets.symmetric(vertical: 10.0, horizontal: 16.0), child: GestureDetector( @@ -79,7 +83,7 @@ Widget academyCard(dynamic data) { 5.w, ), TextWidget().text12W700( - '${data['videos']} videos', + '${data['videos']} ${localizations.translate(AppText.videosTitle)}', clr: AppColor.academyCardTextColor, ), ], 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 06024bf..44bfbc9 100644 --- a/lib/features/MainScreens/Settings/presentation/widgets/general_settings_section.dart +++ b/lib/features/MainScreens/Settings/presentation/widgets/general_settings_section.dart @@ -65,7 +65,10 @@ class GeneralSettingsSection extends StatelessWidget { }, icon: AppImages.languageIcon, title: localizations.translate(AppText.languageText), - trailing: localizations.translate(AppText.englishText), + trailing: "English", + // Globalconst.languageSelected == "en" + // ? "English" + // : "اللغة العربية", ), const Gap(10), const Divider( diff --git a/lib/features/MainScreens/Wallet/presentation/pages/deposit/deposit_completed_screen.dart b/lib/features/MainScreens/Wallet/presentation/pages/deposit/deposit_completed_screen.dart new file mode 100644 index 0000000..e7276c3 --- /dev/null +++ b/lib/features/MainScreens/Wallet/presentation/pages/deposit/deposit_completed_screen.dart @@ -0,0 +1,199 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:flutter_svg/flutter_svg.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_images.dart'; +import 'package:tanami_app/shared/components/text_widget.dart'; + +import '../../../../../../core/styles/app_color.dart'; +import '../../../../../../core/styles/app_text.dart'; +import '../../../../../../core/utils/language/localizations_delegate.dart'; +import '../../../../../../shared/components/button_widget.dart'; + +class DepositeCompleteScreen extends StatelessWidget { + const DepositeCompleteScreen({super.key}); + + @override + Widget build(BuildContext context) { + var localizations = AppLocalizations.of(context); + + return Scaffold( + backgroundColor: Colors.white, + bottomNavigationBar: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Container( + margin: const EdgeInsets.symmetric( + horizontal: 16, + vertical: 16, + ), + width: 1.sw, + height: 56.h, + child: ButtonWidget().elevatedBtn( + txtClr: AppColor.plainWhite, + function: () { + goRouter.pop(); + goRouter.pop(); + goRouter.pop(); + goRouter.pop(); + goRouter.pop(); + }, + text: localizations.translate(AppText.closeText), + clr: AppColor.primaryColor2, + ), + ), + InkWell( + onTap: () { + goRouter.pop(); + goRouter.pop(); + goRouter.pop(); + goRouter.pop(); + goRouter.pop(); + }, + child: Container( + width: 1.sw, + height: 56.h, + margin: const EdgeInsets.only( + bottom: 16, + left: 16, + right: 16, + ), + padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 16), + decoration: ShapeDecoration( + shape: RoundedRectangleBorder( + side: const BorderSide(width: 1, color: Color(0xFFE3E3E3)), + borderRadius: BorderRadius.circular(30), + ), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + TextWidget().text14W700( + localizations + .translate(AppText.manageDepositNotifications), + clr: AppColor.textLabelColor, + textDecoration: TextDecoration.underline), + ], + ), + ), + ) + ], + ), + appBar: AppBar( + backgroundColor: Colors.white, + elevation: 0, + scrolledUnderElevation: 0.0, + centerTitle: true, + title: Text( + localizations.translate(AppText.deposit), + style: GoogleFonts.dmSans( + color: const Color(0xFF272727), + fontSize: 20.sp, + fontWeight: FontWeight.w700, + ), + ), + ), + body: Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Center(child: SvgPicture.asset(AppImages.dStep3CountIcon)), + const Gap(15), + Center( + child: TextWidget().text14W400( + localizations.translate(AppText.youAreAllSet), + clr: AppColor.textLabelColor, + txtAlign: TextAlign.center), + ), + const Gap(50), + Stack( + alignment: Alignment.topCenter, + children: [ + Padding( + padding: const EdgeInsets.only(top: 45), + child: Container( + width: 1.sw, + clipBehavior: Clip.antiAlias, + decoration: ShapeDecoration( + color: AppColor.plainWhite, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(22), + ), + shadows: const [ + BoxShadow( + color: Color(0x14000000), + blurRadius: 8, + offset: Offset(-2, -2), + spreadRadius: 0.50, + ), + BoxShadow( + color: Color(0x3391978E), + blurRadius: 8, + offset: Offset(2, 2), + spreadRadius: 4, + ) + ], + ), + child: Padding( + padding: const EdgeInsets.all(12.0), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Align( + alignment: Alignment.topRight, + child: TextWidget().text12W400('17th of June, 2024', + clr: const Color(0xFF787878)), + ), + const Gap(25), + TextWidget().text20W700( + localizations.translate( + AppText.depositNotificationCreated), + clr: AppColor.plainBlack), + const Gap(18), + TextWidget().text12W400( + localizations.translate(AppText.amountDeposited), + clr: AppColor.plainBlack), + const Gap(8), + Row( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Container( + margin: const EdgeInsets.only(top: 2), + child: TextWidget().text15W400("SAR", + clr: AppColor.investTextColor), + ), + const Gap(5), + TextWidget().text32W700("1000", + clr: AppColor.investTextColor), + ], + ), + const Gap(40), + ], + ), + ), + ), + ), + Positioned( + child: SvgPicture.asset(AppImages.depositCheckIcon), + ), + ], + ), + const Gap(50), + TextWidget().text14W400( + localizations.translate( + AppText.pleaseEnsureTheFundsAreTransferredFromBank), + clr: AppColor.textLabelColor, + txtAlign: TextAlign.start, + ), + ], + ), + ), + ); + } +} diff --git a/lib/features/MainScreens/Wallet/presentation/pages/deposit/deposit_layout.dart b/lib/features/MainScreens/Wallet/presentation/pages/deposit/deposit_layout.dart index c1ce836..f2292d6 100644 --- a/lib/features/MainScreens/Wallet/presentation/pages/deposit/deposit_layout.dart +++ b/lib/features/MainScreens/Wallet/presentation/pages/deposit/deposit_layout.dart @@ -147,45 +147,25 @@ class DepositLayout extends StatelessWidget { return Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Padding( - padding: const EdgeInsets.all(12.0), - child: selectedIndex == 1 - ? Row(children: [ - SvgPicture.asset(AppImages.applePayIcon), - const Gap(5), - TextWidget().text14W700( - localizations - .translate(AppText.applePayText), - clr: AppColor.textLabelColor), - ]) - : Row( - children: [ - SvgPicture.asset(AppImages.walletIcon), - const Gap(5), - TextWidget().text14W700( - localizations - .translate(AppText.bankTransfer), - clr: AppColor.textLabelColor), - ], - ), + Center( + child: SvgPicture.asset(AppImages.dStepCount1Icon)), + const Gap(30), + Center( + child: TextWidget().text14W500( + localizations.translate( + AppText.insertTheAmountYouWouldLikeToTransfer), + clr: AppColor.textLabelColor), ), + const Gap(30), Padding( padding: const EdgeInsets.symmetric( vertical: 16.0, horizontal: 12.0), child: Row( crossAxisAlignment: CrossAxisAlignment.center, children: [ - Text( - 'SAR', - style: GoogleFonts.dmSans( - color: const Color(0xFF363636), - fontSize: 15.sp, - fontWeight: FontWeight.w400, - ), - ), - SizedBox( - width: 12.w, - ), + TextWidget().text15W400("SAR", + clr: AppColor.textLabelColor), + Gap(12.w), SizedBox( width: 280.w, child: TextFormField( @@ -310,21 +290,21 @@ class DepositLayout extends StatelessWidget { // ), // ), - const Gap(15), - Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Text( - localizations - .translate("Total : SAR ${state.amount}"), - style: GoogleFonts.dmSans( - color: const Color(0xFF066123), - fontSize: 16.sp, - fontWeight: FontWeight.w700, - ), - ), - ], - ), + // const Gap(15), + // Row( + // mainAxisAlignment: MainAxisAlignment.center, + // children: [ + // Text( + // localizations + // .translate("Total : SAR ${state.amount}"), + // style: GoogleFonts.dmSans( + // color: const Color(0xFF066123), + // fontSize: 16.sp, + // fontWeight: FontWeight.w700, + // ), + // ), + // ], + // ), ], ); }, diff --git a/lib/features/MainScreens/Wallet/presentation/pages/deposit/deposit_step_screen.dart b/lib/features/MainScreens/Wallet/presentation/pages/deposit/deposit_step_screen.dart index cde91cc..5308ae3 100644 --- a/lib/features/MainScreens/Wallet/presentation/pages/deposit/deposit_step_screen.dart +++ b/lib/features/MainScreens/Wallet/presentation/pages/deposit/deposit_step_screen.dart @@ -1,8 +1,10 @@ +import 'package:dotted_line/dotted_line.dart'; import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:gap/gap.dart'; import 'package:google_fonts/google_fonts.dart'; +import 'package:tanami_app/Globalconst.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_images.dart'; @@ -51,107 +53,99 @@ class DepositStepScreen extends StatelessWidget { fontWeight: FontWeight.w700, ), ), - actions: const [ - Icon( - Icons.info, - color: Color(0xFF363636), - ), - Gap(10) - ], ), body: Padding( padding: const EdgeInsets.all(16.0), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Container( - padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 20), - decoration: ShapeDecoration( - color: const Color(0xFFF6F6F6), - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(22), - ), - ), - child: Row( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisAlignment: MainAxisAlignment.start, - children: [ - SizedBox( - width: 0.8.sw, - child: Text( - 'In order for you to complete a bank transfer, you need will need to create a deposit notification and transfer funds from your wallet, directly into your bank account.', - style: GoogleFonts.dmSans( - color: const Color(0xFF363636), - fontSize: 14, - fontWeight: FontWeight.w500, - ), - ), - ), - const Spacer(), - const Icon( - Icons.close, - color: Color(0xFF363636), - ) - ], - ), - ), + TextWidget().text14W500( + localizations + .translate(AppText.inOrderForYouToCompleteBankTransfers), + clr: AppColor.textLabelColor, + txtAlign: TextAlign.start), const Gap(16), - TextWidget().text15W700("Please complete the below steps", + TextWidget().text15W700( + localizations.translate(AppText.pleaseCompleteTheBelowSteps), clr: AppColor.plainBlack), const Gap(16), - Padding( - padding: const EdgeInsets.all(16.0), - child: ListView( - shrinkWrap: true, - children: [ - Row( + Stack( + children: [ + Positioned( + left: Globalconst.languageSelected == "en" ? 35.w : 0.w, + right: Globalconst.languageSelected == "en" ? 0.w : 35.w, + top: 40.h, + child: DottedLine( + direction: Axis.vertical, + alignment: WrapAlignment.center, + lineLength: 150, + lineThickness: 1.0, + dashLength: 4.0, + dashColor: const Color(0xFF066123).withOpacity(0.46), + dashRadius: 0.0, + dashGapLength: 4.0, + dashGapRadius: 0.0, + ), + ), + Padding( + padding: const EdgeInsets.all(16.0), + child: ListView( + shrinkWrap: true, children: [ - SvgPicture.asset(AppImages.dStep1Icon), - const Gap(16), - Expanded( - child: TextWidget().text14W400( - "Insert the amount you would like to transfer.", - clr: const Color(0xFF363636), - txtAlign: TextAlign.start, - ), - ) + Row( + children: [ + SvgPicture.asset(AppImages.dStep1Icon), + const Gap(16), + Expanded( + child: TextWidget().text14W400( + localizations.translate(AppText + .insertTheAmountYouWouldLikeToTransfer), + clr: const Color(0xFF363636), + txtAlign: TextAlign.start, + ), + ) + ], + ), + const Gap(24), + Row( + children: [ + SvgPicture.asset(AppImages.dStep2Icon), + const Gap(16), + Expanded( + child: TextWidget().text14W400( + localizations.translate(AppText + .copyTheBankDetailsYourTanamiAccountShownNextPage), + clr: const Color(0xFF363636), + txtAlign: TextAlign.start, + ), + ) + ], + ), + const Gap(24), + Row( + children: [ + SvgPicture.asset(AppImages.dStep3Icon), + const Gap(16), + Expanded( + child: TextWidget().text14W400( + localizations.translate(AppText + .insertTheAmountYouWouldLikeToTransfer), + clr: const Color(0xFF363636), + txtAlign: TextAlign.start, + ), + ) + ], + ), ], ), - const Gap(24), - Row( - children: [ - SvgPicture.asset(AppImages.dStep2Icon), - const Gap(16), - Expanded( - child: TextWidget().text14W400( - "Copy the bank details of your Tanami account shown on the next page. Make sure to keep note of the reference ID.", - clr: const Color(0xFF363636), - txtAlign: TextAlign.start, - ), - ) - ], - ), - const Gap(24), - Row( - children: [ - SvgPicture.asset(AppImages.dStep3Icon), - const Gap(16), - Expanded( - child: TextWidget().text14W400( - "Insert the amount you would like to transfer.", - clr: const Color(0xFF363636), - txtAlign: TextAlign.start, - ), - ) - ], - ), - ], - ), + ), + ], ), - const Spacer(), + const Gap(36), TextWidget().text13W500( - "Tanami will notify you upon receipt of your funds and it will appear in your wallet balance 3-4 business days after initiating the transfer.", - clr: const Color(0xFF888888), + localizations + .translate(AppText.tanamiWillNotifyUponReceiptFunds), + clr: AppColor.plainBlack, fontStyle: FontStyle.italic), ], ), diff --git a/lib/features/MainScreens/Wallet/presentation/pages/deposit/preview.dart b/lib/features/MainScreens/Wallet/presentation/pages/deposit/preview.dart index aa7719d..ba31ec1 100644 --- a/lib/features/MainScreens/Wallet/presentation/pages/deposit/preview.dart +++ b/lib/features/MainScreens/Wallet/presentation/pages/deposit/preview.dart @@ -1,11 +1,15 @@ import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:flutter_svg/flutter_svg.dart'; import 'package:gap/gap.dart'; import 'package:google_fonts/google_fonts.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_text.dart'; +import 'package:tanami_app/shared/components/text_widget.dart'; +import '../../../../../../core/styles/app_images.dart'; import '../../../../../../core/utils/language/localizations_delegate.dart'; class DepositPreview extends StatefulWidget { @@ -42,13 +46,13 @@ class _DepositPreviewState extends State { Widget build(BuildContext context) { var localizations = AppLocalizations.of(context); List titles = [ - localizations.translate("Account Name"), - localizations.translate("Account No."), - localizations.translate("IBAN"), - localizations.translate("SWIFT Code"), - localizations.translate("Bank Name"), - localizations.translate("Bank Address"), - localizations.translate("Client ID"), + localizations.translate(AppText.accountName), + localizations.translate(AppText.accountNo), + localizations.translate(AppText.iban), + localizations.translate(AppText.swiftCode), + localizations.translate(AppText.bankName), + localizations.translate(AppText.bankAddress), + localizations.translate(AppText.clientId), ]; return Scaffold( backgroundColor: Colors.white, @@ -58,7 +62,7 @@ class _DepositPreviewState extends State { scrolledUnderElevation: 0.0, centerTitle: true, title: Text( - localizations.translate("Deposit confirmation"), + localizations.translate(AppText.deposit), style: GoogleFonts.dmSans( color: const Color(0xFF272727), fontSize: 20.sp, @@ -72,215 +76,15 @@ class _DepositPreviewState extends State { child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - // RichText( - // text: TextSpan( - // children: [ - // TextSpan( - // text: '${localizations.translate(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, - // ), - // ), - // ], - // ), - // ), - // SizedBox( - // height: 20.h, - // ), - // Container( - // width: double.infinity, - // decoration: BoxDecoration( - // borderRadius: BorderRadius.circular(22.r), - // color: Colors.white, - // boxShadow: [ - // BoxShadow( - // color: Colors.black.withOpacity(0.15), - // spreadRadius: 2, - // blurRadius: 10, - // offset: const Offset(0, 5), - // ), - // ], - // ), - // child: Column( - // children: [ - // Padding( - // padding: const EdgeInsets.all(12.0), - // child: Row( - // children: [ - // Container( - // decoration: const BoxDecoration( - // shape: BoxShape.circle, - // color: Color(0xFF0FA4A4)), - // child: Padding( - // padding: const EdgeInsets.all(12.0), - // child: Image.asset( - // 'assets/images/wallet_screen/deposit_list.png', - // height: 36.h, - // ), - // ), - // ), - // SizedBox( - // width: 12.w, - // ), - // Text( - // localizations.translate (AppText.depositTitle), - // style: GoogleFonts.dmSans( - // color: Colors.black, - // fontSize: 17.sp, - // fontWeight: FontWeight.w700, - // ), - // ), - // ], - // ), - // ), - // Container( - // decoration: BoxDecoration( - // borderRadius: BorderRadius.only( - // bottomLeft: Radius.circular(22.r), - // bottomRight: Radius.circular(22.r), - // ), - // color: const Color(0xFFD8D8D8).withOpacity(0.4), - // ), - // child: Padding( - // padding: const EdgeInsets.symmetric( - // vertical: 16.0, horizontal: 12.0), - // child: ListView.builder( - // physics: const NeverScrollableScrollPhysics(), - // shrinkWrap: true, - // itemCount: titles2.length, - // itemBuilder: (context, index) { - // return Padding( - // padding: - // const EdgeInsets.symmetric(vertical: 5.0), - // child: Row( - // crossAxisAlignment: CrossAxisAlignment.center, - // mainAxisAlignment: - // MainAxisAlignment.spaceBetween, - // children: [ - // Text( - // titles2[index], - // style: GoogleFonts.dmSans( - // color: const Color(0xFF535353), - // fontSize: 14.sp, - // fontWeight: FontWeight.w500, - // ), - // ), - // (index == 0) - // ? Column( - // crossAxisAlignment: - // CrossAxisAlignment.end, - // children: [ - // Text( - // 'SAR 55,000', - // style: GoogleFonts.dmSans( - // color: Colors.black, - // fontSize: 14.sp, - // fontWeight: FontWeight.w700, - // ), - // ), - // Text( - // '\$ 14,685', - // style: GoogleFonts.dmSans( - // color: Colors.black, - // fontSize: 11.sp, - // fontWeight: FontWeight.w400, - // ), - // ), - // ], - // ) - // : Text( - // values2[index], - // style: GoogleFonts.dmSans( - // color: Colors.black, - // fontSize: 14.sp, - // fontWeight: FontWeight.w700, - // ), - // ), - // ], - // ), - // ); - // }, - // ), - // ), - // ), - // ], - // ), - // ), - - // SizedBox( - // height: 20.h, - // ), - // Container( - // decoration: BoxDecoration( - // borderRadius: BorderRadius.circular(22.r), - // color: const Color(0xFFEEF6FB), - // border: Border.all(color: const Color(0xFF90D4FF)), - // boxShadow: const [ - // BoxShadow( - // color: Color(0xFFB0D3EF), - // spreadRadius: 1, - // blurRadius: 10, - // offset: Offset(0, 3), - // ), - // ], - // ), - // child: Padding( - // padding: const EdgeInsets.symmetric( - // vertical: 12.0, horizontal: 16.0), - // child: Row( - // crossAxisAlignment: CrossAxisAlignment.center, - // children: [ - // Image.asset( - // 'assets/images/wallet_screen/info.png', - // height: 25.h, - // ), - // SizedBox( - // width: 10.w, - // ), - // Expanded( - // child: Column( - // crossAxisAlignment: CrossAxisAlignment.start, - // children: [ - // Text( - // AppText.depositScreenTitle, - // style: GoogleFonts.dmSans( - // color: const Color(0xFF015698), - // fontSize: 14.sp, - // fontWeight: FontWeight.w700, - // ), - // ), - // const Gap(4), - // SizedBox( - // width: 280.w, - // child: Text( - // AppText.info3, - // style: GoogleFonts.dmSans( - // color: const Color(0xFF015698), - // fontSize: 12.sp, - // fontWeight: FontWeight.w500, - // ), - // ), - // ), - // ], - // ), - // ), - // ], - // ), - // ), - // ), - // SizedBox( - // height: 20.h, - // ), + Center(child: SvgPicture.asset(AppImages.dStep2CountIcon)), + const Gap(30), + TextWidget().text14W400( + localizations + .translate(AppText.copyTheBankDetailsOfYourTanamiAccount), + clr: AppColor.textLabelColor, + txtAlign: TextAlign.start, + ), + const Gap(10), Card( color: AppColor.plainWhite, elevation: 5, @@ -388,10 +192,7 @@ class _DepositPreviewState extends State { children: [ GestureDetector( onTap: () { - goRouter.pop(); - goRouter.pop(); - goRouter.pop(); - goRouter.pop(); + goRouter.pushNamed(RouteName.depositCompleteScreen); }, child: Container( margin: const EdgeInsets.all(10.0), diff --git a/lib/features/contactAdmin/presentation/pages/contact_admin_screen.dart b/lib/features/contactAdmin/presentation/pages/contact_admin_screen.dart index f14deb1..6d41c22 100644 --- a/lib/features/contactAdmin/presentation/pages/contact_admin_screen.dart +++ b/lib/features/contactAdmin/presentation/pages/contact_admin_screen.dart @@ -3,6 +3,7 @@ import 'package:tanami_app/features/contactAdmin/presentation/widgets/bottom_sec import '../../../../core/styles/app_color.dart'; import '../../../../core/styles/app_text.dart'; +import '../../../../core/utils/language/localizations_delegate.dart'; import '../../../../shared/components/appbar_widget.dart'; import '../widgets/top_section.dart'; @@ -11,11 +12,13 @@ class ContactAdminScreen extends StatelessWidget { @override Widget build(BuildContext context) { + var localizations = AppLocalizations.of(context); + return Scaffold( backgroundColor: AppColor.plainWhite, - appBar: const AppBarWidget( + appBar: AppBarWidget( height: 75, - titleTxt: AppText.contactAdminText, + titleTxt: localizations.translate(AppText.contactAdminText), ), body: ListView( children: [ diff --git a/lib/features/faq/presentation/pages/faq_screen.dart b/lib/features/faq/presentation/pages/faq_screen.dart index 4b7b753..01351ff 100644 --- a/lib/features/faq/presentation/pages/faq_screen.dart +++ b/lib/features/faq/presentation/pages/faq_screen.dart @@ -24,9 +24,9 @@ class _AccountappState extends State { var localizations = AppLocalizations.of(context); return Scaffold( backgroundColor: AppColor.plainWhite, - appBar: const AppBarWidget( + appBar: AppBarWidget( height: 75, - titleTxt: AppText.faqText, + titleTxt: localizations.translate(AppText.faqText), ), body: SafeArea( child: SingleChildScrollView( diff --git a/lib/features/forgotPassword/bloc/restore_password_bloc.dart b/lib/features/forgotPassword/presentation/bloc/restore_password_bloc.dart similarity index 95% rename from lib/features/forgotPassword/bloc/restore_password_bloc.dart rename to lib/features/forgotPassword/presentation/bloc/restore_password_bloc.dart index e7b5263..fb2d5ea 100644 --- a/lib/features/forgotPassword/bloc/restore_password_bloc.dart +++ b/lib/features/forgotPassword/presentation/bloc/restore_password_bloc.dart @@ -4,8 +4,8 @@ import 'package:bloc/bloc.dart'; import 'package:flutter/material.dart'; import 'package:tanami_app/Globalconst.dart'; -import '../../../Api_Helper/base_manager.dart'; -import '../domain/repository/forgot_password_api.dart'; +import '../../../../Api_Helper/base_manager.dart'; +import '../../domain/repository/forgot_password_api.dart'; import 'restore_password_event.dart'; import 'restore_password_state.dart'; diff --git a/lib/features/forgotPassword/bloc/restore_password_event.dart b/lib/features/forgotPassword/presentation/bloc/restore_password_event.dart similarity index 100% rename from lib/features/forgotPassword/bloc/restore_password_event.dart rename to lib/features/forgotPassword/presentation/bloc/restore_password_event.dart diff --git a/lib/features/forgotPassword/bloc/restore_password_phone_verification_bloc.dart b/lib/features/forgotPassword/presentation/bloc/restore_password_phone_verification_bloc.dart similarity index 93% rename from lib/features/forgotPassword/bloc/restore_password_phone_verification_bloc.dart rename to lib/features/forgotPassword/presentation/bloc/restore_password_phone_verification_bloc.dart index 1a5bba6..f26425b 100644 --- a/lib/features/forgotPassword/bloc/restore_password_phone_verification_bloc.dart +++ b/lib/features/forgotPassword/presentation/bloc/restore_password_phone_verification_bloc.dart @@ -2,9 +2,9 @@ import 'package:bloc/bloc.dart'; import 'package:flutter/material.dart'; import 'package:tanami_app/Globalconst.dart'; -import '../../../Api_Helper/base_manager.dart'; -import '../../../core/utils/secure/secure_storage_service.dart'; -import '../domain/repository/forgot_password_api.dart'; +import '../../../../Api_Helper/base_manager.dart'; +import '../../../../core/utils/secure/secure_storage_service.dart'; +import '../../domain/repository/forgot_password_api.dart'; import 'restore_password_phone_verification_event.dart'; import 'restore_password_phone_verification_state.dart'; diff --git a/lib/features/forgotPassword/bloc/restore_password_phone_verification_event.dart b/lib/features/forgotPassword/presentation/bloc/restore_password_phone_verification_event.dart similarity index 100% rename from lib/features/forgotPassword/bloc/restore_password_phone_verification_event.dart rename to lib/features/forgotPassword/presentation/bloc/restore_password_phone_verification_event.dart diff --git a/lib/features/forgotPassword/bloc/restore_password_phone_verification_state.dart b/lib/features/forgotPassword/presentation/bloc/restore_password_phone_verification_state.dart similarity index 100% rename from lib/features/forgotPassword/bloc/restore_password_phone_verification_state.dart rename to lib/features/forgotPassword/presentation/bloc/restore_password_phone_verification_state.dart diff --git a/lib/features/forgotPassword/bloc/restore_password_state.dart b/lib/features/forgotPassword/presentation/bloc/restore_password_state.dart similarity index 100% rename from lib/features/forgotPassword/bloc/restore_password_state.dart rename to lib/features/forgotPassword/presentation/bloc/restore_password_state.dart diff --git a/lib/features/forgotPassword/presentation/pages/restore_password_phone_verification_screen.dart b/lib/features/forgotPassword/presentation/pages/restore_password_phone_verification_screen.dart index 4860a09..ceac93f 100644 --- a/lib/features/forgotPassword/presentation/pages/restore_password_phone_verification_screen.dart +++ b/lib/features/forgotPassword/presentation/pages/restore_password_phone_verification_screen.dart @@ -5,7 +5,7 @@ import 'package:tanami_app/features/forgotPassword/presentation/pages/restore_pa import '../../../../core/styles/app_color.dart'; import '../../../countrySelection/bloc/choose_country_bloc.dart'; -import '../../bloc/restore_password_phone_verification_bloc.dart'; +import '../bloc/restore_password_phone_verification_bloc.dart'; class RestorePasswordPhoneVerificationScreen extends StatelessWidget { const RestorePasswordPhoneVerificationScreen({super.key}); diff --git a/lib/features/forgotPassword/presentation/pages/restore_password_screen.dart b/lib/features/forgotPassword/presentation/pages/restore_password_screen.dart index 29d1c8f..079b42d 100644 --- a/lib/features/forgotPassword/presentation/pages/restore_password_screen.dart +++ b/lib/features/forgotPassword/presentation/pages/restore_password_screen.dart @@ -2,7 +2,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import '../../../../core/styles/app_color.dart'; -import '../../bloc/restore_password_bloc.dart'; +import '../bloc/restore_password_bloc.dart'; import 'restore_password_layout.dart'; class RestorePasswordScreen extends StatelessWidget { diff --git a/lib/features/forgotPassword/presentation/widgets/restore_password_bottom_section.dart b/lib/features/forgotPassword/presentation/widgets/restore_password_bottom_section.dart index 1b64c3d..c0423b7 100644 --- a/lib/features/forgotPassword/presentation/widgets/restore_password_bottom_section.dart +++ b/lib/features/forgotPassword/presentation/widgets/restore_password_bottom_section.dart @@ -13,9 +13,9 @@ import '../../../../core/utils/language/localizations_delegate.dart'; import '../../../../shared/components/button_widget.dart'; import '../../../../shared/components/text_widget.dart'; import '../../../countrySelection/bloc/choose_country_bloc.dart'; -import '../../bloc/restore_password_bloc.dart'; -import '../../bloc/restore_password_event.dart'; -import '../../bloc/restore_password_state.dart'; +import '../bloc/restore_password_bloc.dart'; +import '../bloc/restore_password_event.dart'; +import '../bloc/restore_password_state.dart'; class RestorePasswordBottomSection extends StatelessWidget { const RestorePasswordBottomSection({ diff --git a/lib/features/forgotPassword/presentation/widgets/restore_password_form.dart b/lib/features/forgotPassword/presentation/widgets/restore_password_form.dart index 95359c9..440a33e 100644 --- a/lib/features/forgotPassword/presentation/widgets/restore_password_form.dart +++ b/lib/features/forgotPassword/presentation/widgets/restore_password_form.dart @@ -2,11 +2,11 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:gap/gap.dart'; import 'package:tanami_app/core/styles/app_text.dart'; -import 'package:tanami_app/features/forgotPassword/bloc/restore_password_bloc.dart'; import '../../../../core/utils/language/localizations_delegate.dart'; import '../../../../shared/components/bloc/password_field/password_visibility_bloc.dart'; import '../../../../shared/components/form_label_textfield.dart'; +import '../bloc/restore_password_bloc.dart'; class RestorePasswordForm extends StatelessWidget { const RestorePasswordForm({super.key}); diff --git a/lib/features/forgotPassword/presentation/widgets/restore_password_phone_verification_bottom_section.dart b/lib/features/forgotPassword/presentation/widgets/restore_password_phone_verification_bottom_section.dart index 53dfc42..ba1f62d 100644 --- a/lib/features/forgotPassword/presentation/widgets/restore_password_phone_verification_bottom_section.dart +++ b/lib/features/forgotPassword/presentation/widgets/restore_password_phone_verification_bottom_section.dart @@ -13,9 +13,9 @@ import '../../../../core/utils/language/localizations_delegate.dart'; import '../../../../shared/components/button_widget.dart'; import '../../../../shared/components/text_widget.dart'; import '../../../countrySelection/bloc/choose_country_bloc.dart'; -import '../../bloc/restore_password_phone_verification_bloc.dart'; -import '../../bloc/restore_password_phone_verification_event.dart'; -import '../../bloc/restore_password_phone_verification_state.dart'; +import '../bloc/restore_password_phone_verification_bloc.dart'; +import '../bloc/restore_password_phone_verification_event.dart'; +import '../bloc/restore_password_phone_verification_state.dart'; class RestorePasswordPhoneVerificationBottomSection extends StatelessWidget { const RestorePasswordPhoneVerificationBottomSection({ diff --git a/lib/features/forgotPassword/presentation/widgets/restore_password_phone_verification_form.dart b/lib/features/forgotPassword/presentation/widgets/restore_password_phone_verification_form.dart index 5eb4034..55531bf 100644 --- a/lib/features/forgotPassword/presentation/widgets/restore_password_phone_verification_form.dart +++ b/lib/features/forgotPassword/presentation/widgets/restore_password_phone_verification_form.dart @@ -15,7 +15,7 @@ import '../../../countrySelection/bloc/GetCountry/get_country_bloc.dart'; import '../../../countrySelection/bloc/GetCountry/get_country_state.dart'; import '../../../countrySelection/bloc/choose_country_bloc.dart'; import '../../../countrySelection/bloc/choose_country_state.dart'; -import '../../bloc/restore_password_phone_verification_bloc.dart'; +import '../bloc/restore_password_phone_verification_bloc.dart'; class RestorePasswordPhoneVerificationForm extends StatelessWidget { const RestorePasswordPhoneVerificationForm({super.key}); diff --git a/lib/features/securePin/presentation/bloc/pin_bloc.dart b/lib/features/securePin/presentation/bloc/pin_bloc.dart index 60f43fc..d91c05b 100644 --- a/lib/features/securePin/presentation/bloc/pin_bloc.dart +++ b/lib/features/securePin/presentation/bloc/pin_bloc.dart @@ -1,7 +1,6 @@ import 'package:bloc/bloc.dart'; import 'package:equatable/equatable.dart'; import 'package:tanami_app/Api_Helper/base_manager.dart'; -import 'package:tanami_app/core/styles/app_text.dart'; import '../../../../Globalconst.dart'; import '../../../../core/routes/routes.dart'; @@ -94,7 +93,9 @@ class PinBloc extends Bloc { goRouter.pop(); emit(state.copyWith( isVerified: false, - error: AppText.incorrectPinCode, + error: Globalconst.languageSelected == "en" + ? "Incorrect PIN. Please try again." + : "رمز التعريف الشخصي غير صحيح", verifiedOnce: true, )); } diff --git a/lib/features/welcome/presentation/bloc/onboarding_bloc.dart b/lib/features/welcome/presentation/bloc/onboarding_bloc.dart index b2d333f..05c573a 100644 --- a/lib/features/welcome/presentation/bloc/onboarding_bloc.dart +++ b/lib/features/welcome/presentation/bloc/onboarding_bloc.dart @@ -1,4 +1,5 @@ import 'package:bloc/bloc.dart'; + import 'onboarding_event.dart'; import 'onboarding_state.dart'; diff --git a/lib/features/welcome/presentation/widgets/build_onboarding_page_widget.dart b/lib/features/welcome/presentation/widgets/build_onboarding_page_widget.dart index 0925bb1..137d65e 100644 --- a/lib/features/welcome/presentation/widgets/build_onboarding_page_widget.dart +++ b/lib/features/welcome/presentation/widgets/build_onboarding_page_widget.dart @@ -36,31 +36,32 @@ Widget buildOnboardingPage( )), ) : const SizedBox(), - index == 0 ? const Gap(20) : const Gap(80), - SvgPicture.asset(AppImages.welcomeLogo), + index == 0 ? const Gap(0) : const Gap(85), + SvgPicture.asset(AppImages.welcomeLogo1), + const Gap(50), Image.asset( imageAsset, width: 1.sw, - height: index == 2 ? 380 : 450, + height: 370, fit: BoxFit.cover, ), const Gap(12), - TextWidget().text22W700( + welcomeIndicator(pageController), + const Gap(20), + TextWidget().text15W500( title, - clr: AppColor.primaryColor, + clr: AppColor.darkGreyColor, ), - const Gap(12), Padding( padding: const EdgeInsets.symmetric( - horizontal: 50, + horizontal: 20, ), - child: TextWidget().text15W500( + child: TextWidget().text20W700( description, - clr: AppColor.darkGreyColor, + clr: AppColor.primaryColor, + txtAlign: TextAlign.center, ), ), - const Gap(20), - welcomeIndicator(pageController), if (isLastPage) const LoginSignUpButton(), ], ); diff --git a/lib/main.dart b/lib/main.dart index d477641..31cc9eb 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -15,7 +15,7 @@ import 'features/biometric/bloc/biometric_bloc.dart'; import 'features/biometric/bloc/biometric_event.dart'; import 'features/countrySelection/bloc/GetCountry/get_country_bloc.dart'; import 'features/countrySelection/bloc/choose_country_bloc.dart'; -import 'features/forgotPassword/bloc/restore_password_phone_verification_bloc.dart'; +import 'features/forgotPassword/presentation/bloc/restore_password_phone_verification_bloc.dart'; import 'features/otpVerification/bloc/otp_bloc.dart'; import 'features/register/presentation/bloc/register_bloc.dart'; import 'shared/components/bloc/bottom_nav_bar/bottom_navigation_bloc.dart'; diff --git a/lib/shared/components/form_label_textfield.dart b/lib/shared/components/form_label_textfield.dart index 81ed595..8f25f7d 100644 --- a/lib/shared/components/form_label_textfield.dart +++ b/lib/shared/components/form_label_textfield.dart @@ -11,7 +11,7 @@ import 'package:tanami_app/shared/components/text_widget.dart'; import '../../core/routes/route_name.dart'; import '../../core/routes/routes.dart'; import '../../core/utils/language/localizations_delegate.dart'; -import '../../features/forgotPassword/bloc/restore_password_phone_verification_bloc.dart'; +import '../../features/forgotPassword/presentation/bloc/restore_password_phone_verification_bloc.dart'; import '../../features/register/presentation/bloc/register_bloc.dart'; import 'text_from_field_widget.dart'; diff --git a/lib/shared/components/text_widget.dart b/lib/shared/components/text_widget.dart index 0b7a74c..bf26151 100644 --- a/lib/shared/components/text_widget.dart +++ b/lib/shared/components/text_widget.dart @@ -216,10 +216,11 @@ class TextWidget { String text, { Color? clr, TextDecoration? textDecoration, + TextAlign? textAlign, }) { return Text( text, - textAlign: TextAlign.center, + textAlign: textAlign ?? TextAlign.center, style: GoogleFonts.dmSans( fontSize: 15.sp, decorationColor: AppColor.hintTextColor, @@ -323,9 +324,10 @@ class TextWidget { } //Text Size 20 - Widget text20W700(String text, {Color? clr}) { + Widget text20W700(String text, {Color? clr, TextAlign? txtAlign}) { return Text( text, + textAlign: txtAlign ?? TextAlign.start, style: GoogleFonts.dmSans( fontSize: 20.sp, fontWeight: FontWeight.w700, @@ -356,4 +358,16 @@ class TextWidget { ), ); } + + //Text Size 32 + Widget text32W700(String text, {Color? clr}) { + return Text( + text, + style: GoogleFonts.dmSans( + fontSize: 32.sp, + fontWeight: FontWeight.w700, + color: clr ?? AppColor.plainWhite, + ), + ); + } } diff --git a/pubspec.lock b/pubspec.lock index 7137592..e96111b 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -297,6 +297,14 @@ packages: url: "https://pub.dev" source: hosted version: "5.4.3+1" + dotted_line: + dependency: "direct main" + description: + name: dotted_line + sha256: c931ba331656154711d9420f369f80cf9e8869ca9933ae5fb35b7669bcbe7d2e + url: "https://pub.dev" + source: hosted + version: "3.2.2" equatable: dependency: "direct main" description: diff --git a/pubspec.yaml b/pubspec.yaml index c81ea28..db75b1a 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -73,6 +73,7 @@ dependencies: #Style control_style: ^0.1.0 + dotted_line: ^3.2.2 #OTP Autofill sms_autofill: ^2.3.1