From f48e09b2d18caab7a1d81a57b0d88f2dcbe0641e Mon Sep 17 00:00:00 2001 From: Sikander Saleem Date: Thu, 23 Dec 2021 12:32:59 +0300 Subject: [PATCH] forgot password screen added. --- assets/langs/en-US.json | 4 ++ lib/config/routes.dart | 4 +- lib/generated/codegen_loader.g.dart | 10 +++ lib/ui/login/login_screen.dart | 36 +++++------ lib/ui/login/new_password_screen.dart | 92 +++++++++++++++++++++++++++ 5 files changed, 125 insertions(+), 21 deletions(-) create mode 100644 lib/ui/login/new_password_screen.dart diff --git a/assets/langs/en-US.json b/assets/langs/en-US.json index ba920a8..816a208 100644 --- a/assets/langs/en-US.json +++ b/assets/langs/en-US.json @@ -36,6 +36,10 @@ "offers": "Offers & ", "discounts": "Discounts", "newString": "New", + "setTheNewPassword": "Set the new password", + "typeYourNewPasswordBelow": "Type your new password below", + "confirmPassword": "Confirm Password", + "update": "Update", "title": "Title", "home": "Home", "mySalary": "My Salary", diff --git a/lib/config/routes.dart b/lib/config/routes.dart index d60f2b8..0224e73 100644 --- a/lib/config/routes.dart +++ b/lib/config/routes.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:mohem_flutter_app/ui/dashboard.dart'; import 'package:mohem_flutter_app/ui/login/login_screen.dart'; +import 'package:mohem_flutter_app/ui/login/new_password_screen.dart'; import 'package:mohem_flutter_app/ui/login/verify_login_screen.dart'; class AppRoutes { @@ -9,7 +10,7 @@ class AppRoutes { static const String loginVerifyAccount = "/loginVerifyAccount"; static const String login = "/login"; static const String verifyLogin = "/verifyLogin"; - static const String forgetPassword = "/forgetPassword"; + static const String newPassword = "/newPassword"; static const String loginVerification = "/loginVerification"; static const String dashboard = "/dashboard"; static const String initialRoute = login; @@ -18,5 +19,6 @@ class AppRoutes { login: (context) => LoginScreen(), verifyLogin: (context) => VerifyLoginScreen(), dashboard: (context) => Dashboard(), + newPassword: (context) => NewPasswordScreen(), }; } diff --git a/lib/generated/codegen_loader.g.dart b/lib/generated/codegen_loader.g.dart index 0991c28..824dea8 100644 --- a/lib/generated/codegen_loader.g.dart +++ b/lib/generated/codegen_loader.g.dart @@ -51,6 +51,11 @@ class CodegenLoader extends AssetLoader{ "viewAllOffers": "View All Offers", "offers": "Offers & ", "discounts": "Discounts", + "newString": "New", + "setTheNewPassword": "Set the new password", + "typeYourNewPasswordBelow": "Type your new password below", + "confirmPassword": "Confirm Password", + "update": "Update", "title": "Title", "home": "Home", "mySalary": "My Salary", @@ -130,6 +135,11 @@ static const Map en_US = { "viewAllOffers": "View All Offers", "offers": "Offers & ", "discounts": "Discounts", + "newString": "New", + "setTheNewPassword": "Set the new password", + "typeYourNewPasswordBelow": "Type your new password below", + "confirmPassword": "Confirm Password", + "update": "Update", "title": "Title", "home": "Home", "mySalary": "My Salary", diff --git a/lib/ui/login/login_screen.dart b/lib/ui/login/login_screen.dart index 6e043bd..f7f8e05 100644 --- a/lib/ui/login/login_screen.dart +++ b/lib/ui/login/login_screen.dart @@ -2,13 +2,14 @@ import 'package:easy_localization/easy_localization.dart'; import 'package:easy_localization/src/public_ext.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:mohem_flutter_app/config/routes.dart'; -import 'package:mohem_flutter_app/generated/locale_keys.g.dart'; import 'package:mohem_flutter_app/classes/colors.dart'; +import 'package:mohem_flutter_app/config/routes.dart'; import 'package:mohem_flutter_app/extensions/int_extensions.dart'; +import 'package:mohem_flutter_app/extensions/string_extensions.dart'; import 'package:mohem_flutter_app/extensions/widget_extensions.dart'; -import 'package:mohem_flutter_app/widgets/input_widget.dart'; +import 'package:mohem_flutter_app/generated/locale_keys.g.dart'; import 'package:mohem_flutter_app/widgets/button/default_button.dart'; +import 'package:mohem_flutter_app/widgets/input_widget.dart'; class LoginScreen extends StatefulWidget { LoginScreen({Key? key}) : super(key: key); @@ -50,20 +51,14 @@ class _LoginScreenState extends State { Expanded(child: SizedBox()), Row( children: [ - Text( - LocaleKeys.english.tr(), - style: TextStyle(color: MyColors.textMixColor, fontSize: 14, letterSpacing: -0.48, fontWeight: FontWeight.w600), - ).onPress(() {}), + LocaleKeys.english.tr().toText14(color: MyColors.textMixColor).onPress(() {}), Container( width: 1, color: MyColors.darkWhiteColor, height: 16, margin: const EdgeInsets.only(left: 10, right: 10), ), - Text( - LocaleKeys.arabic.tr(), - style: TextStyle(color: MyColors.darkTextColor, fontSize: 14, letterSpacing: -0.48, fontWeight: FontWeight.w600), - ).onPress(() {}), + LocaleKeys.arabic.tr().toText14().onPress(() {}), ], ), ], @@ -74,18 +69,19 @@ class _LoginScreenState extends State { crossAxisAlignment: CrossAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.center, children: [ - Text( - LocaleKeys.login.tr(), - style: TextStyle(color: MyColors.darkTextColor, fontSize: 24, letterSpacing: -1.44, fontWeight: FontWeight.w700), - ), - Text( - LocaleKeys.pleaseEnterLoginDetails.tr(), - style: TextStyle(color: MyColors.darkTextColor, fontSize: 16, letterSpacing: -0.64, fontWeight: FontWeight.w600), - ), + LocaleKeys.login.tr().toText24(isBold: true), + LocaleKeys.pleaseEnterLoginDetails.tr().toText16(), 16.height, InputWidget(LocaleKeys.username.tr(), "123456", username), 12.height, - InputWidget(LocaleKeys.password.tr(), "xxxxxx", password, isObscureText: true) + InputWidget(LocaleKeys.password.tr(), "xxxxxx", password, isObscureText: true), + 9.height, + Align( + alignment: Alignment.centerRight, + child: LocaleKeys.forgotPassword.tr().toText12(isUnderLine: true, color: MyColors.textMixColor).onPress(() { + Navigator.pushNamed(context, AppRoutes.newPassword); + }), + ), ], ), ) diff --git a/lib/ui/login/new_password_screen.dart b/lib/ui/login/new_password_screen.dart new file mode 100644 index 0000000..dca855e --- /dev/null +++ b/lib/ui/login/new_password_screen.dart @@ -0,0 +1,92 @@ +import 'package:easy_localization/src/public_ext.dart'; +import 'package:flutter/material.dart'; +import 'package:mohem_flutter_app/classes/colors.dart'; +import 'package:mohem_flutter_app/config/routes.dart'; +import 'package:mohem_flutter_app/extensions/int_extensions.dart'; +import 'package:mohem_flutter_app/extensions/string_extensions.dart'; +import 'package:mohem_flutter_app/extensions/widget_extensions.dart'; +import 'package:mohem_flutter_app/generated/locale_keys.g.dart'; +import 'package:mohem_flutter_app/widgets/button/default_button.dart'; +import 'package:mohem_flutter_app/widgets/input_widget.dart'; + +class NewPasswordScreen extends StatefulWidget { + NewPasswordScreen({Key? key}) : super(key: key); + + @override + _NewPasswordScreenState createState() { + return _NewPasswordScreenState(); + } +} + +class _NewPasswordScreenState extends State { + TextEditingController password = TextEditingController(); + TextEditingController confirmPassword = TextEditingController(); + + @override + void initState() { + super.initState(); + } + + @override + void dispose() { + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + body: Column( + children: [ + const SizedBox(height: 23), + Expanded( + child: Padding( + padding: const EdgeInsets.all(21.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Expanded(child: SizedBox()), + Row( + children: [ + LocaleKeys.english.tr().toText14(color: MyColors.textMixColor).onPress(() {}), + Container( + width: 1, + color: MyColors.darkWhiteColor, + height: 16, + margin: const EdgeInsets.only(left: 10, right: 10), + ), + LocaleKeys.arabic.tr().toText14().onPress(() {}), + ], + ), + ], + ), + Expanded( + child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + LocaleKeys.setTheNewPassword.tr().toText24(isBold: true), + LocaleKeys.typeYourNewPasswordBelow.tr().toText16(), + 16.height, + InputWidget(LocaleKeys.password.tr(), "**********", password), + 12.height, + InputWidget(LocaleKeys.confirmPassword.tr(), "**********", confirmPassword, isObscureText: true) + ], + ), + ) + ], + ), + ), + ), + DefaultButton(LocaleKeys.update.tr(), () async { + // context.setLocale(const Locale("en", "US")); // to change Loacle + + Navigator.pushNamed(context, AppRoutes.verifyLogin); + }).insideContainer + ], + ), + ); + } +}