Add forgot password, reset password, and verify OTP providers and view models

- Implemented `ForgotPasswordViewModel`, `ResetPasswordViewModel`, and `VerifyOtpViewModel` for handling respective functionalities.
- Created provider functions for lazy loading of these view models in the app.
- Updated routing to utilize the new providers for managing state in the forgot password flow.
- Refactored UI components to integrate with the new view models, ensuring proper state management and user feedback during operations.
This commit is contained in:
amirrezaghabeli
2025-10-06 15:39:08 +03:30
parent b522bc77a9
commit cee5e6c6d6
23 changed files with 490 additions and 310 deletions
+12 -5
View File
@@ -18,12 +18,15 @@ import '../../views/splash/pages/splash_screen.dart';
import '../../views/tenders/pages/tenders_screen.dart';
import '../../views/your_tenders/pages/your_tenders_screen.dart';
import '../providers/final_completion_provider.dart';
import '../providers/forgot_password_provider.dart';
import '../providers/home_provider.dart';
import '../providers/liked_tenders_provider.dart';
import '../providers/notification_provider.dart';
import '../providers/profile_provider.dart';
import '../providers/reset_password_provider.dart';
import '../providers/tender_detail_provider.dart';
import '../providers/tenders_provider.dart';
import '../providers/verify_otp_provider.dart';
import '../providers/your_tenders_provider.dart';
import 'app_shell/app_shell_screen.dart';
@@ -275,28 +278,32 @@ class ForgotPasswordRouteData extends GoRouteData
@override
Widget build(BuildContext context, GoRouterState state) {
return const ForgotPasswordScreen();
return forgotPasswordProvider(child: const ForgotPasswordScreen());
}
}
@TypedGoRoute<ForgotPasswordOtpRouteData>(path: '/forgot-password-otp')
class ForgotPasswordOtpRouteData extends GoRouteData
with _$ForgotPasswordOtpRouteData {
const ForgotPasswordOtpRouteData();
final String email;
const ForgotPasswordOtpRouteData({required this.email});
@override
Widget build(BuildContext context, GoRouterState state) {
return const ForgotPasswordOtpScreen();
return verifyOtpProvider(child: ForgotPasswordOtpScreen(email: email));
}
}
@TypedGoRoute<ForgotPasswordCreateRouteData>(path: '/forgot-password-create')
class ForgotPasswordCreateRouteData extends GoRouteData
with _$ForgotPasswordCreateRouteData {
const ForgotPasswordCreateRouteData();
final String resetToken;
const ForgotPasswordCreateRouteData({required this.resetToken});
@override
Widget build(BuildContext context, GoRouterState state) {
return const ForgotPasswordCreateScreen();
return resetPasswordProvider(
child: ForgotPasswordCreateScreen(resetToken: resetToken),
);
}
}