diff --git a/lib/core/config/dependencies.dart b/lib/core/config/dependencies.dart index 0d5dd22..861d149 100644 --- a/lib/core/config/dependencies.dart +++ b/lib/core/config/dependencies.dart @@ -37,47 +37,65 @@ List get providersRemote { List get cores { return [ - Provider(create: (context) => NetworkManager(context.read())), - ChangeNotifierProvider(create: (context) => ThemeProvider()), - ChangeNotifierProvider(create: (context) => NotificationStateService()), + Provider(create: (context) => NetworkManager(context.read()), lazy: true), + ChangeNotifierProvider(create: (context) => ThemeProvider(), lazy: true), + ChangeNotifierProvider( + create: (context) => NotificationStateService(), + lazy: true, + ), ]; } List get apiClients { return [ - Provider(create: (context) => AuthService(networkManager: context.read())), - Provider(create: (context) => HomeService(networkManager: context.read())), + Provider( + create: (context) => AuthService(networkManager: context.read()), + lazy: true, + ), + Provider( + create: (context) => HomeService(networkManager: context.read()), + lazy: true, + ), Provider( create: (context) => TenderDetailService(networkManager: context.read()), + lazy: true, ), - Provider( create: (context) => YourTendersService(networkManager: context.read()), + lazy: true, ), Provider( create: (context) => LikedTendersService(networkManager: context.read()), + lazy: true, ), Provider( create: (context) => TendersService(networkManager: context.read()), + lazy: true, ), Provider( create: (context) => ProfileService(networkManager: context.read()), + lazy: true, ), Provider( create: (context) => NotificationsService(networkManager: context.read()), + lazy: true, ), ]; } List get repositories { return [ - Provider(create: (context) => AuthRepository(authService: context.read())), + Provider( + create: (context) => AuthRepository(authService: context.read()), + lazy: true, + ), Provider( create: (context) => YourTendersRepository( yourTendersService: context.read(), likedTendersService: context.read(), ), + lazy: true, ), Provider( create: @@ -85,28 +103,33 @@ List get repositories { homeService: context.read(), yourTendersService: context.read(), ), + lazy: true, ), Provider( create: (context) => TenderDetailRepository(tenderDetailService: context.read()), + lazy: true, ), - Provider( create: (context) => LikedTendersRepository(likedTendersService: context.read()), + lazy: true, ), Provider( create: (context) => TendersRepository(tendersService: context.read()), + lazy: true, ), Provider( create: (context) => ProfileRepository(profileService: context.read()), + lazy: true, ), Provider( create: (context) => NotificationsRepository(notificationsService: context.read()), + lazy: true, ), ]; } @@ -119,6 +142,7 @@ List get services { homeRepository: context.read(), notificationStateService: context.read(), ), + lazy: true, ), ]; } @@ -127,6 +151,7 @@ List get viewModels { return [ ChangeNotifierProvider( create: (context) => AuthViewModel(authRepository: context.read()), + lazy: true, ), ChangeNotifierProvider( create: @@ -134,23 +159,25 @@ List get viewModels { homeRepository: context.read(), notificationStateService: context.read(), ), + lazy: true, ), ChangeNotifierProvider( create: (context) => TendersViewModel(tendersRepository: context.read()), + lazy: true, ), ChangeNotifierProvider( create: (context) => TenderDetailViewModel( tenderDetailRepository: context.read(), tendersRepository: context.read(), - tendersViewModel: context.read(), ), + lazy: true, ), - ChangeNotifierProvider( create: (context) => YourTendersViewModel(yourTendersRepository: context.read()), + lazy: true, ), ChangeNotifierProvider( create: @@ -158,17 +185,19 @@ List get viewModels { likedTendersRepository: context.read(), tendersRepository: context.read(), ), + lazy: true, ), ChangeNotifierProvider( create: (context) => ProfileViewModel( profileRepository: context.read(), authRepository: context.read(), - authViewModel: context.read(), ), + lazy: true, ), ChangeNotifierProvider( create: (context) => FinalCompletionOfDocumentsViewModel(), + lazy: true, ), ChangeNotifierProvider( create: @@ -177,6 +206,7 @@ List get viewModels { notificationStateService: context.read(), notificationCheckService: context.read(), ), + lazy: true, ), ]; } diff --git a/lib/view_models/auth_view_model.dart b/lib/view_models/auth_view_model.dart index aa0690d..d194a40 100644 --- a/lib/view_models/auth_view_model.dart +++ b/lib/view_models/auth_view_model.dart @@ -8,7 +8,6 @@ import '../core/utils/logger.dart'; import '../core/utils/result.dart'; import '../data/repositories/auth_repository.dart'; import '../data/services/model/login_response/login_response_model.dart'; -import '../data/services/model/logout_response/logout_response.dart'; import '../data/services/model/reset_password_response/reset_password_response.dart'; import '../views/forget_password_create/strings/forgot_password_create_strings.dart'; @@ -157,27 +156,6 @@ class AuthViewModel with ChangeNotifier { notifyListeners(); } - Future logout() async { - _errorMessage = null; - notifyListeners(); - - final result = await _authRepository.logout(); - - switch (result) { - case Ok(): - await localLogout(); - break; - case Error(): - _errorMessage = result.error.toString(); - break; - } - - notifyListeners(); - - _errorMessage = null; - notifyListeners(); - } - Future forgotPassword() async { _isLoadingForgot = true; _errorMessageForget = null; diff --git a/lib/view_models/profile_view_model.dart b/lib/view_models/profile_view_model.dart index 5e2f0f1..eb99915 100644 --- a/lib/view_models/profile_view_model.dart +++ b/lib/view_models/profile_view_model.dart @@ -8,20 +8,16 @@ import '../core/utils/result.dart'; import '../data/repositories/profile_repository.dart'; import '../data/services/model/logout_response/logout_response.dart'; import '../data/services/model/profile_response/profile_response.dart'; -import 'auth_view_model.dart'; class ProfileViewModel with ChangeNotifier { final ProfileRepository _profileRepository; final AuthRepository _authRepository; - final AuthViewModel _authViewModel; ProfileViewModel({ required ProfileRepository profileRepository, required AuthRepository authRepository, - required AuthViewModel authViewModel, }) : _profileRepository = profileRepository, - _authRepository = authRepository, - _authViewModel = authViewModel; + _authRepository = authRepository; bool _isLoading = false; String? _errorMessage; @@ -85,7 +81,7 @@ class ProfileViewModel with ChangeNotifier { switch (result) { case Ok(): - await _authViewModel.localLogout(); + await _authRepository.localLogout(); _loggedOut = true; break; case Error(): diff --git a/lib/view_models/tender_detail_view_model.dart b/lib/view_models/tender_detail_view_model.dart index b0a7b78..86049da 100644 --- a/lib/view_models/tender_detail_view_model.dart +++ b/lib/view_models/tender_detail_view_model.dart @@ -9,7 +9,6 @@ import '../core/constants/tender_approval_status.dart'; import '../data/services/model/tender_approvals_by_id_response/tender_approvals_by_id_response.dart'; import '../data/services/model/tender_approvals_data/tender_approvals_data.dart'; import '../data/services/model/tender_approvals_toggle_response/tender_approvals_toggle_response.dart'; -import 'tenders_view_model.dart'; class TenderDetailViewModel with ChangeNotifier { final TenderDetailRepository _tenderDetailRepository; @@ -18,7 +17,6 @@ class TenderDetailViewModel with ChangeNotifier { TenderDetailViewModel({ required TenderDetailRepository tenderDetailRepository, required TendersRepository tendersRepository, - required TendersViewModel tendersViewModel, }) : _tenderDetailRepository = tenderDetailRepository, _tendersRepository = tendersRepository;