feat(auth): add countdown timer for resend button

This commit is contained in:
qzl
2026-02-26 10:58:29 +08:00
parent deba6cc435
commit 1f253c54e9
@@ -1,3 +1,5 @@
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:go_router/go_router.dart';
@@ -43,13 +45,38 @@ class RegisterVerificationView extends StatefulWidget {
class _RegisterVerificationViewState extends State<RegisterVerificationView> {
final _codeController = TextEditingController();
Timer? _countdownTimer;
int _countdown = 60;
@override
void initState() {
super.initState();
_startCountdown();
}
@override
void dispose() {
_countdownTimer?.cancel();
_codeController.dispose();
super.dispose();
}
void _startCountdown() {
setState(() {
_countdown = 60;
});
_countdownTimer?.cancel();
_countdownTimer = Timer.periodic(const Duration(seconds: 1), (timer) {
if (_countdown > 0) {
setState(() {
_countdown--;
});
} else {
timer.cancel();
}
});
}
Future<void> _handleComplete() async {
final cubit = context.read<RegisterCubit>();
cubit.verificationCodeChanged(_codeController.text);