From b80b9e795dabca757fa80c61031c3e99b48dd1f5 Mon Sep 17 00:00:00 2001 From: qzl Date: Thu, 26 Feb 2026 11:31:35 +0800 Subject: [PATCH] fix(auth): allow immediate resend on first send failure --- .../screens/register_verification_screen.dart | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/apps/lib/features/auth/ui/screens/register_verification_screen.dart b/apps/lib/features/auth/ui/screens/register_verification_screen.dart index 8dbf783..8988ca9 100644 --- a/apps/lib/features/auth/ui/screens/register_verification_screen.dart +++ b/apps/lib/features/auth/ui/screens/register_verification_screen.dart @@ -46,12 +46,12 @@ class RegisterVerificationView extends StatefulWidget { class _RegisterVerificationViewState extends State { final _codeController = TextEditingController(); Timer? _countdownTimer; - int _countdown = 60; + int _countdown = 0; + bool _firstSendCompleted = false; @override void initState() { super.initState(); - _startCountdown(); } @override @@ -179,6 +179,19 @@ class _RegisterVerificationViewState extends State { if (state.status == FormzSubmissionStatus.failure && state.errorMessage != null) { Toast.show(context, state.errorMessage!, type: ToastType.error); + + if (!_firstSendCompleted) { + _firstSendCompleted = true; + setState(() { + _countdown = 0; + }); + } + } + + if (state.status == FormzSubmissionStatus.success && + !_firstSendCompleted) { + _firstSendCompleted = true; + _startCountdown(); } }, builder: (context, state) {