diff --git a/lib/core/config/dependencies.dart b/lib/core/config/dependencies.dart index fe6daef..207d007 100644 --- a/lib/core/config/dependencies.dart +++ b/lib/core/config/dependencies.dart @@ -41,7 +41,9 @@ List get apiClients { create: (context) => TenderDetailService(networkManager: context.read()), ), - Provider(create: (context) => YourTendersService(networkManager: context.read())), + Provider( + create: (context) => YourTendersService(networkManager: context.read()), + ), Provider( create: (context) => TendersService(networkManager: context.read()), ), @@ -103,6 +105,7 @@ List get viewModels { (context) => ProfileViewModel( profileRepository: context.read(), authRepository: context.read(), + authViewModel: context.read(), ), ), ]; diff --git a/lib/view_models/auth_view_model.dart b/lib/view_models/auth_view_model.dart index c592f06..5614f87 100644 --- a/lib/view_models/auth_view_model.dart +++ b/lib/view_models/auth_view_model.dart @@ -74,6 +74,12 @@ class AuthViewModel with ChangeNotifier { notifyListeners(); } + Future localLogout() async { + await _authRepository.localLogout(); + _loggedInUser = null; + notifyListeners(); + } + Future logout() async { _errorMessage = null; notifyListeners(); @@ -82,7 +88,7 @@ class AuthViewModel with ChangeNotifier { switch (result) { case Ok(): - _loggedInUser = null; + localLogout(); break; case Error(): _errorMessage = result.error.toString(); diff --git a/lib/view_models/profile_view_model.dart b/lib/view_models/profile_view_model.dart index 579b892..bd08a6d 100644 --- a/lib/view_models/profile_view_model.dart +++ b/lib/view_models/profile_view_model.dart @@ -8,16 +8,20 @@ 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 { + _authRepository = authRepository, + _authViewModel = authViewModel { getCompanyProfile(); } @@ -81,7 +85,7 @@ class ProfileViewModel with ChangeNotifier { notifyListeners(); } - Future logout(BuildContext context) async { + Future logout() async { _errorMessage = null; notifyListeners(); @@ -89,13 +93,15 @@ class ProfileViewModel with ChangeNotifier { switch (result) { case Ok(): - localLogout(); + _authViewModel.localLogout(); + _loggedOut = true; break; case Error(): _errorMessage = result.error.toString(); break; } + notifyListeners(); _errorMessage = null; notifyListeners(); } diff --git a/lib/views/profile/pages/m_profile_page.dart b/lib/views/profile/pages/m_profile_page.dart index 8b54fb3..f0c2479 100644 --- a/lib/views/profile/pages/m_profile_page.dart +++ b/lib/views/profile/pages/m_profile_page.dart @@ -135,7 +135,7 @@ class _MobileProfilePageState extends State { SizedBox(height: 24.0.h()), Spacer(), InkWell( - onTap: () => viewModel.logout(context), + onTap: () => viewModel.logout(), child: Container( width: double.infinity, height: 56.0.h(),