1
0
forked from baron/baron-sso

fix(userfront): correctly display general signup errors in a dialog instead of password field

This commit is contained in:
2026-03-27 20:52:40 +09:00
parent 13469b14fb
commit 543607069e

View File

@@ -6,6 +6,7 @@ import 'package:go_router/go_router.dart';
import 'package:userfront/i18n.dart'; import 'package:userfront/i18n.dart';
import '../../../core/i18n/locale_utils.dart'; import '../../../core/i18n/locale_utils.dart';
import '../../../core/services/auth_proxy_service.dart'; import '../../../core/services/auth_proxy_service.dart';
import '../../../core/ui/toast_service.dart';
class SignupScreen extends StatefulWidget { class SignupScreen extends StatefulWidget {
const SignupScreen({super.key}); const SignupScreen({super.key});
@@ -336,16 +337,21 @@ class _SignupScreenState extends State<SignupScreen> {
_passwordError = tr( _passwordError = tr(
'msg.userfront.signup.password.lowercase_required', 'msg.userfront.signup.password.lowercase_required',
); );
} else if (eStr.contains('password') && (eStr.contains('digit') || eStr.contains('number'))) { } else if (eStr.contains('password') &&
(eStr.contains('digit') || eStr.contains('number'))) {
_passwordError = tr('msg.userfront.signup.password.number_required'); _passwordError = tr('msg.userfront.signup.password.number_required');
} else if (eStr.contains('password') && (eStr.contains('symbol') || eStr.contains('special'))) { } else if (eStr.contains('password') &&
(eStr.contains('symbol') || eStr.contains('special'))) {
_passwordError = tr('msg.userfront.signup.password.symbol_required'); _passwordError = tr('msg.userfront.signup.password.symbol_required');
} else if (eStr.contains('password') && (eStr.contains('length') || eStr.contains('12 characters'))) { } else if (eStr.contains('password') &&
(eStr.contains('length') || eStr.contains('12 characters'))) {
_passwordError = tr('msg.userfront.signup.password.length_required'); _passwordError = tr('msg.userfront.signup.password.length_required');
} else { } else {
_passwordError = tr( _showError(
tr(
'msg.userfront.signup.failed', 'msg.userfront.signup.failed',
params: {'error': e.toString()}, params: {'error': e.toString().replaceFirst('Exception: ', '')},
),
); );
} }
}); });
@@ -354,6 +360,11 @@ class _SignupScreenState extends State<SignupScreen> {
} }
} }
void _showError(String message) {
if (!mounted) return;
ToastService.error(message);
}
void _showSuccessDialog() { void _showSuccessDialog() {
showDialog( showDialog(
context: context, context: context,