Commit 429075dcdac6c1151751c2e949082092a66e7a9c

Authored by 常守达
1 parent 5cec261a

fix(login): 修改toast及警告逻辑

... ... @@ -43,7 +43,9 @@ class AddSecurityEmailController extends GetxController {
final isPasswordObscured = true.obs;
final isOldPasswordObscured = true.obs;
final hasPostUpdatePassword = false.obs;
final hasPostUpdateConfirmPassword = false.obs;
final hasClickSetAPassword = false.obs;
final hasClickSetAConfirmPassword = false.obs;
final hasClickVerifyPassword = false.obs;
final hasClickForgotSubmitNewPassword = false.obs;
... ... @@ -65,6 +67,8 @@ class AddSecurityEmailController extends GetxController {
void _onEmailChanged() {
emailInput.value = emailController.text.replaceAll(' ', '').trim();
hasSubmittedEmail.value = false;
isEmailExist.value = false;
}
void _onCodeChanged() {
... ... @@ -73,10 +77,17 @@ class AddSecurityEmailController extends GetxController {
void _onPasswordChanged() {
passwordInput.value = passwordController.text.trim();
hasClickVerifyPassword.value = false;
hasClickForgotSubmitNewPassword.value = false;
hasPostUpdatePassword.value = false;
hasClickSetAPassword.value = false;
hasClickSetAConfirmPassword.value = false;
}
void _onConfirmPasswordChanged() {
confirmPasswordInput.value = confirmPasswordController.text.trim();
hasPostUpdateConfirmPassword.value = false;
hasClickSetAConfirmPassword.value = false;
}
void _onOldPasswordChanged() {
... ... @@ -211,12 +222,13 @@ class AddSecurityEmailController extends GetxController {
Future<void> setPassword(BuildContext context) async {
hasClickSetAPassword.value = true;
hasClickSetAConfirmPassword.value = true;
if (!isPasswordValid) {
AppToast.show(l10n.invalidPasswordFormat);
// AppToast.show(l10n.invalidPasswordFormat);
return;
}
if (!isConfirmPasswordValid2) {
AppToast.show(l10n.invalidPasswordFormat);
// AppToast.show(l10n.invalidPasswordFormat);
return;
}
if (passwordInput.value != confirmPasswordInput.value) {
... ... @@ -248,17 +260,18 @@ class AddSecurityEmailController extends GetxController {
Future<void> changePassword(BuildContext context) async {
hasPostUpdatePassword.value = true;
hasPostUpdateConfirmPassword.value = true;
if (oldPasswordInput.value.isEmpty) {
AppToast.show(l10n.invalidPasswordFormat);
// AppToast.show(l10n.invalidPasswordFormat);
return;
}
if (!isPasswordValid) {
AppToast.show(l10n.invalidPasswordFormat);
// AppToast.show(l10n.invalidPasswordFormat);
return;
}
if (!isConfirmPasswordValid2) {
AppToast.show(l10n.invalidPasswordFormat);
// AppToast.show(l10n.invalidPasswordFormat);
return;
}
if (passwordInput.value != confirmPasswordInput.value) {
... ... @@ -296,7 +309,7 @@ class AddSecurityEmailController extends GetxController {
Future<void> verifyPassword() async {
hasClickVerifyPassword.value = true;
if (!isPasswordValid) {
AppToast.show(l10n.invalidPasswordFormat);
// AppToast.show(l10n.invalidPasswordFormat);
return;
}
try {
... ... @@ -346,11 +359,11 @@ class AddSecurityEmailController extends GetxController {
Future<void> forgotSubmitNewPassword(BuildContext context) async {
hasClickForgotSubmitNewPassword.value = true;
if (codeInput.value.isEmpty) {
AppToast.show(context.l10n.invalidCode);
// AppToast.show(context.l10n.invalidCode);
return;
}
if (!isPasswordValid) {
AppToast.show(l10n.invalidPasswordFormat);
// AppToast.show(l10n.invalidPasswordFormat);
return;
}
try {
... ...
... ... @@ -159,7 +159,8 @@ class AddSecurityEmailView extends GetView<AddSecurityEmailController> {
child: Padding(
padding:
const EdgeInsets.only(top: 8.0, left: 20, right: 20),
child: Obx(() => controller.isEmailExist.value
child: Obx(() => c.emailInput.value.isNotEmpty &&
controller.isEmailExist.value
? Text(
l10n.thisEmailIsAlreadyLinkedToAnotherAccountPleaseUseADifferentEmail,
textAlign: TextAlign.center,
... ... @@ -716,7 +717,7 @@ class SetSecurityEmailPasswordView extends GetView<AddSecurityEmailController> {
borderSide: BorderSide(
color: c.isConfirmPasswordValid2
? context.colors.primary
: c.hasClickSetAPassword.value
: c.hasClickSetAConfirmPassword.value
? context.colors.warning
: context.colors.textTertiary,
width: 1,
... ... @@ -756,7 +757,7 @@ class SetSecurityEmailPasswordView extends GetView<AddSecurityEmailController> {
style: TextStyle(
color: c.isConfirmPasswordValid2
? context.colors.textTertiary
: c.hasClickSetAPassword.value
: c.hasClickSetAConfirmPassword.value
? context.colors.warning
: context.colors.textTertiary,
fontSize: 12,
... ... @@ -1355,7 +1356,8 @@ class ReSetSecurityEmailPasswordView
borderSide: BorderSide(
color: c.isConfirmPasswordValid2
? context.colors.primary
: c.hasPostUpdatePassword.value
: c.hasPostUpdateConfirmPassword
.value
? context.colors.warning
: context.colors.textTertiary,
width: 1,
... ... @@ -1409,7 +1411,7 @@ class ReSetSecurityEmailPasswordView
style: TextStyle(
color: c.isConfirmPasswordValid2
? context.colors.textTertiary
: c.hasPostUpdatePassword.value
: c.hasPostUpdateConfirmPassword.value
? context.colors.warning
: context.colors.textTertiary,
fontSize: 12,
... ... @@ -1680,21 +1682,22 @@ class ForgotEmailVerificationView extends GetView<AddSecurityEmailController> {
const SizedBox(height: 8),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 16),
child: Text(
textAlign: TextAlign.center,
context.l10n
.passwordMustBeAtLeast6CharactersAndInclude1NumberAnd1UppercaseLetter,
style: TextStyle(
color: controller.isPasswordValid
? context.colors.textTertiary
: controller.hasClickForgotSubmitNewPassword
.value
? context.colors.warning
: context.colors.textTertiary,
fontSize: 12,
fontWeight: FontWeight.w400,
),
),
child: Obx(() => Text(
textAlign: TextAlign.center,
context.l10n
.passwordMustBeAtLeast6CharactersAndInclude1NumberAnd1UppercaseLetter,
style: TextStyle(
color: controller.isPasswordValid
? context.colors.textTertiary
: controller
.hasClickForgotSubmitNewPassword
.value
? context.colors.warning
: context.colors.textTertiary,
fontSize: 12,
fontWeight: FontWeight.w400,
),
)),
),
Offstage(
offstage: true,
... ...
... ... @@ -62,6 +62,7 @@ class LoginController extends GetxController {
/// 是否已经点击过「Continue」(用于控制提示文字是否变红)
final hasTriedEmailLogin = false.obs;
final hasTriedEmailPwd = false.obs;
final resetPasswordCode = ''.obs;
void togglePasswordVisibility() {
... ... @@ -242,8 +243,10 @@ class LoginController extends GetxController {
emailController.addListener(() {
emailInput.value = emailController.text;
hasTriedEmailLogin.value = false;
});
passwordController.addListener(() {
hasTriedEmailPwd.value = false;
passwordInput.value = passwordController.text;
});
resetPasswordCodeController.addListener(() {
... ... @@ -359,14 +362,15 @@ class LoginController extends GetxController {
/// 邮箱登录 Continue 按钮点击
Future<void> emailLogin() async {
hasTriedEmailLogin.value = true;
hasTriedEmailPwd.value = true;
if (!isEmailValid) {
AppToast.show(l10n.invalidEmailFormat);
// AppToast.show(l10n.invalidEmailFormat);
return;
}
if (!isPasswordValid) {
AppToast.show(l10n.invalidPasswordFormat);
// AppToast.show(l10n.invalidPasswordFormat);
return;
}
... ... @@ -413,16 +417,16 @@ class LoginController extends GetxController {
Future<void> resetPassword() async {
if (!isEmailValid) {
AppToast.show(l10n.invalidEmailFormat);
// AppToast.show(l10n.invalidEmailFormat);
return;
}
if (resetPasswordCodeController.text.isEmpty) {
if (resetPasswordCode.value.isEmpty) {
AppToast.show(l10n.invalidCode);
return;
}
if (!isPasswordValid) {
AppToast.show(l10n.invalidPasswordFormat);
// AppToast.show(l10n.invalidPasswordFormat);
return;
}
... ...
... ... @@ -219,12 +219,12 @@ class EmailLoginNewPasswordView extends GetView<LoginController> {
keyboardType: TextInputType.visiblePassword,
obscureText: isObscured,
autofillHints: const [AutofillHints.newPassword],
onSubmitted: (value) {
if (controller.canResetPassword) {
FocusScope.of(context).unfocus();
controller.resetPassword();
}
},
// onSubmitted: (value) {
// if (controller.canResetPassword) {
// FocusScope.of(context).unfocus();
// controller.resetPassword();
// }
// },
obscuringCharacter: '*',
// maxLength: 13,
contextMenuBuilder: (BuildContext context,
... ... @@ -304,7 +304,7 @@ class EmailLoginNewPasswordView extends GetView<LoginController> {
// 密码格式提示
Obx(() {
final hasTried = controller.hasTriedEmailLogin.value;
final hasTried = controller.hasTriedEmailPwd.value;
final pwOk = controller.isPasswordValid;
final isError = hasTried &&
!pwOk &&
... ... @@ -326,7 +326,8 @@ class EmailLoginNewPasswordView extends GetView<LoginController> {
const SizedBox(height: 39),
Obx(() {
final canProceed =
controller.passwordInput.value.isNotEmpty;
controller.resetPasswordCode.value.isNotEmpty &&
controller.passwordInput.value.isNotEmpty;
return SizedBox(
height: 48,
child: ElevatedButton(
... ...
... ... @@ -310,8 +310,7 @@ class EmailLoginView extends GetView<LoginController> {
// 密码格式提示
Obx(() {
final hasTried =
controller.hasTriedEmailLogin.value;
final hasTried = controller.hasTriedEmailPwd.value;
final pwOk = controller.isPasswordValid;
final isError = hasTried && !pwOk;
return Text(
... ...