Refactor dependency injection to use lazy loading for providers in the core configuration. Remove unused logout method from AuthViewModel and adjust ProfileViewModel to call localLogout directly from AuthRepository. Clean up constructor parameters in ProfileViewModel and TenderDetailViewModel by removing unnecessary dependencies.
This commit is contained in:
@@ -37,47 +37,65 @@ List<SingleChildWidget> get providersRemote {
|
|||||||
|
|
||||||
List<SingleChildWidget> get cores {
|
List<SingleChildWidget> get cores {
|
||||||
return [
|
return [
|
||||||
Provider(create: (context) => NetworkManager(context.read())),
|
Provider(create: (context) => NetworkManager(context.read()), lazy: true),
|
||||||
ChangeNotifierProvider(create: (context) => ThemeProvider()),
|
ChangeNotifierProvider(create: (context) => ThemeProvider(), lazy: true),
|
||||||
ChangeNotifierProvider(create: (context) => NotificationStateService()),
|
ChangeNotifierProvider(
|
||||||
|
create: (context) => NotificationStateService(),
|
||||||
|
lazy: true,
|
||||||
|
),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
List<SingleChildWidget> get apiClients {
|
List<SingleChildWidget> get apiClients {
|
||||||
return [
|
return [
|
||||||
Provider(create: (context) => AuthService(networkManager: context.read())),
|
Provider(
|
||||||
Provider(create: (context) => HomeService(networkManager: context.read())),
|
create: (context) => AuthService(networkManager: context.read()),
|
||||||
|
lazy: true,
|
||||||
|
),
|
||||||
|
Provider(
|
||||||
|
create: (context) => HomeService(networkManager: context.read()),
|
||||||
|
lazy: true,
|
||||||
|
),
|
||||||
Provider(
|
Provider(
|
||||||
create: (context) => TenderDetailService(networkManager: context.read()),
|
create: (context) => TenderDetailService(networkManager: context.read()),
|
||||||
|
lazy: true,
|
||||||
),
|
),
|
||||||
|
|
||||||
Provider(
|
Provider(
|
||||||
create: (context) => YourTendersService(networkManager: context.read()),
|
create: (context) => YourTendersService(networkManager: context.read()),
|
||||||
|
lazy: true,
|
||||||
),
|
),
|
||||||
Provider(
|
Provider(
|
||||||
create: (context) => LikedTendersService(networkManager: context.read()),
|
create: (context) => LikedTendersService(networkManager: context.read()),
|
||||||
|
lazy: true,
|
||||||
),
|
),
|
||||||
Provider(
|
Provider(
|
||||||
create: (context) => TendersService(networkManager: context.read()),
|
create: (context) => TendersService(networkManager: context.read()),
|
||||||
|
lazy: true,
|
||||||
),
|
),
|
||||||
Provider(
|
Provider(
|
||||||
create: (context) => ProfileService(networkManager: context.read()),
|
create: (context) => ProfileService(networkManager: context.read()),
|
||||||
|
lazy: true,
|
||||||
),
|
),
|
||||||
Provider(
|
Provider(
|
||||||
create: (context) => NotificationsService(networkManager: context.read()),
|
create: (context) => NotificationsService(networkManager: context.read()),
|
||||||
|
lazy: true,
|
||||||
),
|
),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
List<SingleChildWidget> get repositories {
|
List<SingleChildWidget> get repositories {
|
||||||
return [
|
return [
|
||||||
Provider(create: (context) => AuthRepository(authService: context.read())),
|
Provider(
|
||||||
|
create: (context) => AuthRepository(authService: context.read()),
|
||||||
|
lazy: true,
|
||||||
|
),
|
||||||
Provider(
|
Provider(
|
||||||
create:
|
create:
|
||||||
(context) => YourTendersRepository(
|
(context) => YourTendersRepository(
|
||||||
yourTendersService: context.read(),
|
yourTendersService: context.read(),
|
||||||
likedTendersService: context.read(),
|
likedTendersService: context.read(),
|
||||||
),
|
),
|
||||||
|
lazy: true,
|
||||||
),
|
),
|
||||||
Provider(
|
Provider(
|
||||||
create:
|
create:
|
||||||
@@ -85,28 +103,33 @@ List<SingleChildWidget> get repositories {
|
|||||||
homeService: context.read(),
|
homeService: context.read(),
|
||||||
yourTendersService: context.read(),
|
yourTendersService: context.read(),
|
||||||
),
|
),
|
||||||
|
lazy: true,
|
||||||
),
|
),
|
||||||
Provider(
|
Provider(
|
||||||
create:
|
create:
|
||||||
(context) =>
|
(context) =>
|
||||||
TenderDetailRepository(tenderDetailService: context.read()),
|
TenderDetailRepository(tenderDetailService: context.read()),
|
||||||
|
lazy: true,
|
||||||
),
|
),
|
||||||
|
|
||||||
Provider(
|
Provider(
|
||||||
create:
|
create:
|
||||||
(context) =>
|
(context) =>
|
||||||
LikedTendersRepository(likedTendersService: context.read()),
|
LikedTendersRepository(likedTendersService: context.read()),
|
||||||
|
lazy: true,
|
||||||
),
|
),
|
||||||
Provider(
|
Provider(
|
||||||
create: (context) => TendersRepository(tendersService: context.read()),
|
create: (context) => TendersRepository(tendersService: context.read()),
|
||||||
|
lazy: true,
|
||||||
),
|
),
|
||||||
Provider(
|
Provider(
|
||||||
create: (context) => ProfileRepository(profileService: context.read()),
|
create: (context) => ProfileRepository(profileService: context.read()),
|
||||||
|
lazy: true,
|
||||||
),
|
),
|
||||||
Provider(
|
Provider(
|
||||||
create:
|
create:
|
||||||
(context) =>
|
(context) =>
|
||||||
NotificationsRepository(notificationsService: context.read()),
|
NotificationsRepository(notificationsService: context.read()),
|
||||||
|
lazy: true,
|
||||||
),
|
),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
@@ -119,6 +142,7 @@ List<SingleChildWidget> get services {
|
|||||||
homeRepository: context.read(),
|
homeRepository: context.read(),
|
||||||
notificationStateService: context.read(),
|
notificationStateService: context.read(),
|
||||||
),
|
),
|
||||||
|
lazy: true,
|
||||||
),
|
),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
@@ -127,6 +151,7 @@ List<SingleChildWidget> get viewModels {
|
|||||||
return [
|
return [
|
||||||
ChangeNotifierProvider(
|
ChangeNotifierProvider(
|
||||||
create: (context) => AuthViewModel(authRepository: context.read()),
|
create: (context) => AuthViewModel(authRepository: context.read()),
|
||||||
|
lazy: true,
|
||||||
),
|
),
|
||||||
ChangeNotifierProvider(
|
ChangeNotifierProvider(
|
||||||
create:
|
create:
|
||||||
@@ -134,23 +159,25 @@ List<SingleChildWidget> get viewModels {
|
|||||||
homeRepository: context.read(),
|
homeRepository: context.read(),
|
||||||
notificationStateService: context.read(),
|
notificationStateService: context.read(),
|
||||||
),
|
),
|
||||||
|
lazy: true,
|
||||||
),
|
),
|
||||||
ChangeNotifierProvider(
|
ChangeNotifierProvider(
|
||||||
create: (context) => TendersViewModel(tendersRepository: context.read()),
|
create: (context) => TendersViewModel(tendersRepository: context.read()),
|
||||||
|
lazy: true,
|
||||||
),
|
),
|
||||||
ChangeNotifierProvider(
|
ChangeNotifierProvider(
|
||||||
create:
|
create:
|
||||||
(context) => TenderDetailViewModel(
|
(context) => TenderDetailViewModel(
|
||||||
tenderDetailRepository: context.read(),
|
tenderDetailRepository: context.read(),
|
||||||
tendersRepository: context.read(),
|
tendersRepository: context.read(),
|
||||||
tendersViewModel: context.read(),
|
|
||||||
),
|
),
|
||||||
|
lazy: true,
|
||||||
),
|
),
|
||||||
|
|
||||||
ChangeNotifierProvider(
|
ChangeNotifierProvider(
|
||||||
create:
|
create:
|
||||||
(context) =>
|
(context) =>
|
||||||
YourTendersViewModel(yourTendersRepository: context.read()),
|
YourTendersViewModel(yourTendersRepository: context.read()),
|
||||||
|
lazy: true,
|
||||||
),
|
),
|
||||||
ChangeNotifierProvider(
|
ChangeNotifierProvider(
|
||||||
create:
|
create:
|
||||||
@@ -158,17 +185,19 @@ List<SingleChildWidget> get viewModels {
|
|||||||
likedTendersRepository: context.read(),
|
likedTendersRepository: context.read(),
|
||||||
tendersRepository: context.read(),
|
tendersRepository: context.read(),
|
||||||
),
|
),
|
||||||
|
lazy: true,
|
||||||
),
|
),
|
||||||
ChangeNotifierProvider(
|
ChangeNotifierProvider(
|
||||||
create:
|
create:
|
||||||
(context) => ProfileViewModel(
|
(context) => ProfileViewModel(
|
||||||
profileRepository: context.read(),
|
profileRepository: context.read(),
|
||||||
authRepository: context.read(),
|
authRepository: context.read(),
|
||||||
authViewModel: context.read(),
|
|
||||||
),
|
),
|
||||||
|
lazy: true,
|
||||||
),
|
),
|
||||||
ChangeNotifierProvider(
|
ChangeNotifierProvider(
|
||||||
create: (context) => FinalCompletionOfDocumentsViewModel(),
|
create: (context) => FinalCompletionOfDocumentsViewModel(),
|
||||||
|
lazy: true,
|
||||||
),
|
),
|
||||||
ChangeNotifierProvider(
|
ChangeNotifierProvider(
|
||||||
create:
|
create:
|
||||||
@@ -177,6 +206,7 @@ List<SingleChildWidget> get viewModels {
|
|||||||
notificationStateService: context.read(),
|
notificationStateService: context.read(),
|
||||||
notificationCheckService: context.read(),
|
notificationCheckService: context.read(),
|
||||||
),
|
),
|
||||||
|
lazy: true,
|
||||||
),
|
),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ import '../core/utils/logger.dart';
|
|||||||
import '../core/utils/result.dart';
|
import '../core/utils/result.dart';
|
||||||
import '../data/repositories/auth_repository.dart';
|
import '../data/repositories/auth_repository.dart';
|
||||||
import '../data/services/model/login_response/login_response_model.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 '../data/services/model/reset_password_response/reset_password_response.dart';
|
||||||
import '../views/forget_password_create/strings/forgot_password_create_strings.dart';
|
import '../views/forget_password_create/strings/forgot_password_create_strings.dart';
|
||||||
|
|
||||||
@@ -157,27 +156,6 @@ class AuthViewModel with ChangeNotifier {
|
|||||||
notifyListeners();
|
notifyListeners();
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> logout() async {
|
|
||||||
_errorMessage = null;
|
|
||||||
notifyListeners();
|
|
||||||
|
|
||||||
final result = await _authRepository.logout();
|
|
||||||
|
|
||||||
switch (result) {
|
|
||||||
case Ok<LogoutResponse>():
|
|
||||||
await localLogout();
|
|
||||||
break;
|
|
||||||
case Error<LogoutResponse>():
|
|
||||||
_errorMessage = result.error.toString();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
notifyListeners();
|
|
||||||
|
|
||||||
_errorMessage = null;
|
|
||||||
notifyListeners();
|
|
||||||
}
|
|
||||||
|
|
||||||
Future<void> forgotPassword() async {
|
Future<void> forgotPassword() async {
|
||||||
_isLoadingForgot = true;
|
_isLoadingForgot = true;
|
||||||
_errorMessageForget = null;
|
_errorMessageForget = null;
|
||||||
|
|||||||
@@ -8,20 +8,16 @@ import '../core/utils/result.dart';
|
|||||||
import '../data/repositories/profile_repository.dart';
|
import '../data/repositories/profile_repository.dart';
|
||||||
import '../data/services/model/logout_response/logout_response.dart';
|
import '../data/services/model/logout_response/logout_response.dart';
|
||||||
import '../data/services/model/profile_response/profile_response.dart';
|
import '../data/services/model/profile_response/profile_response.dart';
|
||||||
import 'auth_view_model.dart';
|
|
||||||
|
|
||||||
class ProfileViewModel with ChangeNotifier {
|
class ProfileViewModel with ChangeNotifier {
|
||||||
final ProfileRepository _profileRepository;
|
final ProfileRepository _profileRepository;
|
||||||
final AuthRepository _authRepository;
|
final AuthRepository _authRepository;
|
||||||
final AuthViewModel _authViewModel;
|
|
||||||
|
|
||||||
ProfileViewModel({
|
ProfileViewModel({
|
||||||
required ProfileRepository profileRepository,
|
required ProfileRepository profileRepository,
|
||||||
required AuthRepository authRepository,
|
required AuthRepository authRepository,
|
||||||
required AuthViewModel authViewModel,
|
|
||||||
}) : _profileRepository = profileRepository,
|
}) : _profileRepository = profileRepository,
|
||||||
_authRepository = authRepository,
|
_authRepository = authRepository;
|
||||||
_authViewModel = authViewModel;
|
|
||||||
|
|
||||||
bool _isLoading = false;
|
bool _isLoading = false;
|
||||||
String? _errorMessage;
|
String? _errorMessage;
|
||||||
@@ -85,7 +81,7 @@ class ProfileViewModel with ChangeNotifier {
|
|||||||
|
|
||||||
switch (result) {
|
switch (result) {
|
||||||
case Ok<LogoutResponse>():
|
case Ok<LogoutResponse>():
|
||||||
await _authViewModel.localLogout();
|
await _authRepository.localLogout();
|
||||||
_loggedOut = true;
|
_loggedOut = true;
|
||||||
break;
|
break;
|
||||||
case Error<LogoutResponse>():
|
case Error<LogoutResponse>():
|
||||||
|
|||||||
@@ -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_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_data/tender_approvals_data.dart';
|
||||||
import '../data/services/model/tender_approvals_toggle_response/tender_approvals_toggle_response.dart';
|
import '../data/services/model/tender_approvals_toggle_response/tender_approvals_toggle_response.dart';
|
||||||
import 'tenders_view_model.dart';
|
|
||||||
|
|
||||||
class TenderDetailViewModel with ChangeNotifier {
|
class TenderDetailViewModel with ChangeNotifier {
|
||||||
final TenderDetailRepository _tenderDetailRepository;
|
final TenderDetailRepository _tenderDetailRepository;
|
||||||
@@ -18,7 +17,6 @@ class TenderDetailViewModel with ChangeNotifier {
|
|||||||
TenderDetailViewModel({
|
TenderDetailViewModel({
|
||||||
required TenderDetailRepository tenderDetailRepository,
|
required TenderDetailRepository tenderDetailRepository,
|
||||||
required TendersRepository tendersRepository,
|
required TendersRepository tendersRepository,
|
||||||
required TendersViewModel tendersViewModel,
|
|
||||||
}) : _tenderDetailRepository = tenderDetailRepository,
|
}) : _tenderDetailRepository = tenderDetailRepository,
|
||||||
_tendersRepository = tendersRepository;
|
_tendersRepository = tendersRepository;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user