fix loading issue seperate loading states between verify and resend Otp&&perevent user to send api if otp length !=6

This commit is contained in:
Rafeek Alkhoudare
2025-05-22 02:45:24 -05:00
parent eaecd4996e
commit 293d6a1d98
3 changed files with 15 additions and 7 deletions

View File

@ -270,7 +270,7 @@ class AuthCubit extends Cubit<AuthState> {
Future<bool> reSendOtp({bool? forget}) async { Future<bool> reSendOtp({bool? forget}) async {
try { try {
emit(AuthLoading()); emit(ResendOtpLoading());
await AuthenticationAPI.sendOtp(body: { await AuthenticationAPI.sendOtp(body: {
'email': email, 'email': email,
'type': forget == true ? 'PASSWORD' : 'VERIFICATION' 'type': forget == true ? 'PASSWORD' : 'VERIFICATION'
@ -286,7 +286,10 @@ class AuthCubit extends Cubit<AuthState> {
} }
verifyOtp(bool isForgotPass) async { verifyOtp(bool isForgotPass) async {
emit(AuthLoginLoading()); if (otpCode.length != 6) {
return;
}
emit(AuthOtpLoading());
try { try {
final response = await AuthenticationAPI.verifyPassCode(body: { final response = await AuthenticationAPI.verifyPassCode(body: {
'email': email, 'email': email,

View File

@ -20,9 +20,13 @@ class AuthLoginLoading extends AuthLoading {}
class AuthLoginSuccess extends AuthSuccess {} class AuthLoginSuccess extends AuthSuccess {}
class AuthSignUpSuccess extends AuthSuccess {}
class AuthOtpSuccess extends AuthSuccess {} class AuthOtpSuccess extends AuthSuccess {}
class AuthSignUpSuccess extends AuthSuccess {} class AuthOtpLoading extends AuthLoading {}
class ResendOtpLoading extends AuthLoading {}
class ResendOtpSuccess extends AuthSuccess {} class ResendOtpSuccess extends AuthSuccess {}

View File

@ -321,7 +321,7 @@ class _OtpViewState extends State<OtpView> {
Expanded( Expanded(
child: DefaultButton( child: DefaultButton(
isDone: state is AuthLoginSuccess, isDone: state is AuthLoginSuccess,
isLoading: state is AuthLoading, isLoading: state is AuthOtpLoading,
customButtonStyle: ButtonStyle( customButtonStyle: ButtonStyle(
backgroundColor: backgroundColor:
MaterialStateProperty.all( MaterialStateProperty.all(
@ -349,8 +349,8 @@ class _OtpViewState extends State<OtpView> {
), ),
Expanded( Expanded(
child: DefaultButton( child: DefaultButton(
isDone: state is AuthLoginSuccess, isDone: state is ResendOtpSuccess,
isLoading: state is AuthLoading, isLoading: state is ResendOtpLoading,
customButtonStyle: ButtonStyle( customButtonStyle: ButtonStyle(
backgroundColor: backgroundColor:
MaterialStateProperty.all( MaterialStateProperty.all(
@ -383,7 +383,8 @@ class _OtpViewState extends State<OtpView> {
if (success) { if (success) {
showDialog( showDialog(
context: context, context: context,
builder: (_) =>const SuccessDialog( builder: (_) =>
const SuccessDialog(
key: ValueKey( key: ValueKey(
'SuccessDialog'), 'SuccessDialog'),
message: 'New OTP sent!', message: 'New OTP sent!',