Fixed password and otp bugs

This commit is contained in:
llsajjad
2025-09-17 15:58:49 +03:30
parent 9970d3f296
commit 6a51c3656a
11 changed files with 352 additions and 136 deletions
+32 -21
View File
@@ -1,8 +1,9 @@
import 'dart:developer';
import 'package:flutter/material.dart';
import 'package:tm_app/data/services/model/customer/customer.dart';
import 'package:tm_app/data/services/model/forgot_password_response/forgot_password_response_model.dart';
import 'package:tm_app/data/services/model/verify_otp_response/verify_otp_response_model.dart';
import 'package:tm_app/views/forget_password_create/pages/forgot_password_create_screen.dart';
import '../core/utils/result.dart';
import '../data/repositories/auth_repository.dart';
@@ -51,11 +52,20 @@ class AuthViewModel with ChangeNotifier {
Customer? _loggedInUser;
String? successMessage;
String? _forgotPasswordMessage;
bool _isLoadingForgot = false;
bool _isLoadingOtp = false;
String? _errorMessageForget;
String? _errorMessageOtp;
bool get isLoading => _isLoading;
bool get isLoadingForgot => _isLoadingForgot;
bool get isLoadingOtp => _isLoadingOtp;
bool get isResetPasswordLoading => _isResetPasswordLoading;
String? get errorMessage => _errorMessage;
String? get errorMessageForget => _errorMessageForget;
String? get resetPasswordErrorMessage => _resetPasswordErrorMessage;
String? get errorMessageOtp => _errorMessageOtp;
Customer? get loggedInUser => _loggedInUser;
String? get forgotPasswordMessage => _forgotPasswordMessage;
String? resetToken;
@@ -159,8 +169,8 @@ class AuthViewModel with ChangeNotifier {
}
Future<void> forgotPassword(BuildContext context) async {
_isLoading = true;
_errorMessage = null;
_isLoadingForgot = true;
_errorMessageForget = null;
successMessage = null;
notifyListeners();
@@ -170,31 +180,35 @@ class AuthViewModel with ChangeNotifier {
switch (result) {
case Ok<ForgotPasswordResponseModel>():
_isLoading = false;
_isLoadingForgot = false;
successMessage = result.value.message;
notifyListeners();
log('$successMessage');
Future.microtask(() {
successMessage = null;
});
break;
case Error<ForgotPasswordResponseModel>():
_isLoading = false;
_errorMessage = result.error.toString();
_isLoadingForgot = false;
_errorMessageForget = result.error.toString();
notifyListeners();
Future.microtask(() {
_errorMessage = null;
_errorMessageForget = null;
});
break;
}
}
Future<void> verifyOtp(BuildContext context) async {
_isLoading = true;
void clearMessages() {
successMessage = null;
_errorMessage = null;
notifyListeners();
}
Future<void> verifyOtp(BuildContext context) async {
_isLoadingOtp = true;
_errorMessageOtp = null;
notifyListeners();
final result = await _authRepository.verifyOtp(
code: otpController.text.trim(),
@@ -203,22 +217,19 @@ class AuthViewModel with ChangeNotifier {
switch (result) {
case Ok<VerifyOtpResponseModel>():
_isLoading = false;
_isLoadingOtp = false;
resetToken = result.value.data.token;
Navigator.push(
context,
MaterialPageRoute(builder: (_) => const ForgotPasswordCreateScreen()),
);
break;
case Error<VerifyOtpResponseModel>():
_isLoading = false;
_errorMessage = result.error.toString();
_isLoadingOtp = false;
_errorMessageOtp = result.error.toString();
break;
}
notifyListeners();
_errorMessage = null;
_errorMessageOtp = null;
notifyListeners();
}