-
Notifications
You must be signed in to change notification settings - Fork 0
/
store_module.dart
81 lines (72 loc) · 2.84 KB
/
store_module.dart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
import 'dart:async';
import 'package:boilerplate/core/stores/error/error_store.dart';
import 'package:boilerplate/core/stores/form/form_store.dart';
import 'package:boilerplate/domain/repository/setting/setting_repository.dart';
import 'package:boilerplate/domain/usecase/message/get_all_chat_threads_usecase.dart';
import 'package:boilerplate/domain/usecase/message/save_chat_thread_usecase.dart';
import 'package:boilerplate/domain/usecase/message/send_message_usecase.dart';
import 'package:boilerplate/domain/usecase/message/update_chat_thread_usecase.dart';
import 'package:boilerplate/domain/usecase/post/get_post_usecase.dart';
import 'package:boilerplate/domain/usecase/user/is_logged_in_usecase.dart';
import 'package:boilerplate/domain/usecase/user/login_usecase.dart';
import 'package:boilerplate/domain/usecase/user/save_login_in_status_usecase.dart';
import 'package:boilerplate/presentation/chat_screen/store/chat_store.dart';
import 'package:boilerplate/presentation/home_demo/store/language/language_store.dart';
import 'package:boilerplate/presentation/home_demo/store/theme/theme_store.dart';
import 'package:boilerplate/presentation/login/store/login_store.dart';
import 'package:boilerplate/presentation/new_chat/store/new_chat_store.dart';
import 'package:boilerplate/presentation/post/store/post_store.dart';
import '../../../di/service_locator.dart';
mixin StoreModule {
static Future<void> configureStoreModuleInjection() async {
// factories:---------------------------------------------------------------
getIt.registerFactory(() => ErrorStore());
getIt.registerFactory(() => FormErrorStore());
getIt.registerFactory(
() => FormStore(getIt<FormErrorStore>(), getIt<ErrorStore>()),
);
// stores:------------------------------------------------------------------
getIt.registerSingleton<UserStore>(
UserStore(
getIt<IsLoggedInUseCase>(),
getIt<SaveLoginStatusUseCase>(),
getIt<LoginUseCase>(),
getIt<FormErrorStore>(),
getIt<ErrorStore>(),
),
);
getIt.registerSingleton<PostStore>(
PostStore(
getIt<GetPostUseCase>(),
getIt<ErrorStore>(),
),
);
getIt.registerSingleton<ThemeStore>(
ThemeStore(
getIt<SettingRepository>(),
getIt<ErrorStore>(),
),
);
getIt.registerSingleton<LanguageStore>(
LanguageStore(
getIt<SettingRepository>(),
getIt<ErrorStore>(),
),
);
getIt.registerSingleton<NewChatStore>(
NewChatStore(
getIt<ErrorStore>(),
getIt<SendMessageUseCase>(),
getIt<SaveChatThreadUseCase>(),
),
);
getIt.registerSingleton<ChatStore>(
ChatStore(
getIt<ErrorStore>(),
getIt<SendMessageUseCase>(),
getIt<GetAllChatThreadsUseCase>(),
getIt<UpdateChatThreadUseCase>(),
),
);
}
}