feat(auth): add countdown timer for resend button
This commit is contained in:
@@ -1,3 +1,5 @@
|
|||||||
|
import 'dart:async';
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||||
import 'package:go_router/go_router.dart';
|
import 'package:go_router/go_router.dart';
|
||||||
@@ -43,13 +45,38 @@ class RegisterVerificationView extends StatefulWidget {
|
|||||||
|
|
||||||
class _RegisterVerificationViewState extends State<RegisterVerificationView> {
|
class _RegisterVerificationViewState extends State<RegisterVerificationView> {
|
||||||
final _codeController = TextEditingController();
|
final _codeController = TextEditingController();
|
||||||
|
Timer? _countdownTimer;
|
||||||
|
int _countdown = 60;
|
||||||
|
|
||||||
|
@override
|
||||||
|
void initState() {
|
||||||
|
super.initState();
|
||||||
|
_startCountdown();
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void dispose() {
|
void dispose() {
|
||||||
|
_countdownTimer?.cancel();
|
||||||
_codeController.dispose();
|
_codeController.dispose();
|
||||||
super.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 {
|
Future<void> _handleComplete() async {
|
||||||
final cubit = context.read<RegisterCubit>();
|
final cubit = context.read<RegisterCubit>();
|
||||||
cubit.verificationCodeChanged(_codeController.text);
|
cubit.verificationCodeChanged(_codeController.text);
|
||||||
|
|||||||
Reference in New Issue
Block a user