Files
tm_app/lib/core/config/dependencies.dart
T
amirrezaghabeli fe20d1b884 merge branches
2025-08-10 08:39:48 +03:30

68 lines
2.1 KiB
Dart

import 'package:provider/provider.dart';
import 'package:provider/single_child_widget.dart';
import 'package:tm_app/core/theme/theme_provider.dart';
import 'package:tm_app/data/repositories/home_repository.dart';
import 'package:tm_app/data/repositories/tender_detail_repository.dart';
import 'package:tm_app/data/services/home_service.dart';
import 'package:tm_app/data/services/tender_detail_service.dart';
import 'package:tm_app/view_models/tender_detail_view_model.dart';
import '../../data/repositories/auth_repository.dart';
import '../../data/services/auth_service.dart';
import '../../data/services/network_manager.dart';
import '../../view_models/auth_view_model.dart';
import '../../view_models/home_view_model.dart';
List<SingleChildWidget> get providersRemote {
return [...cores, ...apiClients, ...repositories, ...viewModels, ...others];
}
List<SingleChildWidget> get cores {
return [
Provider(create: (context) => NetworkManager()),
ChangeNotifierProvider(create: (context) => ThemeProvider()),
];
}
List<SingleChildWidget> get apiClients {
return [
Provider(create: (context) => AuthService(networkManager: context.read())),
Provider(create: (context) => HomeService(networkManager: context.read())),
Provider(
create: (context) => TenderDetailService(networkManager: context.read()),
),
];
}
List<SingleChildWidget> get repositories {
return [
Provider(create: (context) => AuthRepository(authService: context.read())),
Provider(create: (context) => HomeRepository(homeService: context.read())),
Provider(
create:
(context) =>
TenderDetailRepository(tenderDetailService: context.read()),
),
];
}
List<SingleChildWidget> get viewModels {
return [
ChangeNotifierProvider(
create: (context) => AuthViewModel(authRepository: context.read()),
),
ChangeNotifierProvider(
create: (context) => HomeViewModel(homeRepository: context.read()),
),
ChangeNotifierProvider(
create:
(context) =>
TenderDetailViewModel(tenderDetailRepository: context.read()),
),
];
}
List<SingleChildWidget> get others {
return [];
}