fix : some di remove in module page

This commit is contained in:
2025-09-01 10:50:05 +03:30
parent d8eedd106a
commit 5af5d63a1e
12 changed files with 275 additions and 48 deletions

View File

@@ -72,7 +72,7 @@ class ModulesLogic extends GetxController {
void onTapCard(Module? module, int index) async { void onTapCard(Module? module, int index) async {
if (module == null) { if (module == null) {
if(Get.isSnackbarOpen) return; if (Get.isSnackbarOpen) return;
Get.snackbar( Get.snackbar(
"در حال توسعه", "در حال توسعه",
"این ماژول به زودی اضافه می‌شود", "این ماژول به زودی اضافه می‌شود",
@@ -94,12 +94,18 @@ class ModulesLogic extends GetxController {
Future<void> navigateToModule(Module module) async { Future<void> navigateToModule(Module module) async {
var target = getAuthTargetPage(module).entries.first; var target = getAuthTargetPage(module).entries.first;
fLog('gooo');
if (target.value != null) { if (target.value?[0] != null) {
await target.value; isLoading.value = !isLoading.value;
await target.value?[0];
isLoading.value = !isLoading.value;
}
await Get.toNamed(target.key, arguments: module);
fLog('return');
if (target.value?[1] != null) {
await target.value?[1];
} }
isLoading.value = !isLoading.value;
Get.toNamed(target.key, arguments: module);
} }
Future<void> getSliders() async { Future<void> getSliders() async {

View File

@@ -26,7 +26,6 @@ sealed class AppPages {
name: AppPaths.moduleList, name: AppPaths.moduleList,
page: () => ModulesPage(), page: () => ModulesPage(),
binding: BindingsBuilder(() { binding: BindingsBuilder(() {
Get.lazyPut(() => SliderLogic(), tag: "up"); Get.lazyPut(() => SliderLogic(), tag: "up");
Get.lazyPut(() => SliderLogic(), tag: "down"); Get.lazyPut(() => SliderLogic(), tag: "down");
Get.put(ModulesLogic()); Get.put(ModulesLogic());
@@ -58,14 +57,20 @@ Map<String, Future<void>?> getTargetModule(Module? value) {
} }
} }
Map<String, Future<void>?> getAuthTargetPage(Module? value) { Map<String, List<Future<void>?>?> getAuthTargetPage(Module? value) {
switch (value) { switch (value) {
case Module.inspection: case Module.inspection:
return {InspectionRoutes.auth: setupInspectionDI()}; return {
InspectionRoutes.auth: [setupInspectionDI(), removeInspectionDI()],
};
case Module.liveStocks: case Module.liveStocks:
return {LiveStockRoutes.auth: setupLiveStockDI()}; return {
LiveStockRoutes.auth: [setupLiveStockDI(), removeLiveStockDI()],
};
case Module.chicken: case Module.chicken:
return {ChickenRoutes.auth: setupChickenDI()}; return {
ChickenRoutes.auth: [setupChickenDI(), removeChickenDI()],
};
default: default:
return {AppPaths.moduleList: null}; return {AppPaths.moduleList: null};
} }

View File

@@ -46,7 +46,7 @@ Future<void> setupChickenDI() async {
await dioRemote.init(); await dioRemote.init();
diChicken.registerLazySingleton<AuthRemoteDataSource>( diChicken.registerLazySingleton<AuthRemoteDataSource>(
() => AuthRemoteDataSourceImp(diChicken.get<DioRemote>()), () => AuthRemoteDataSourceImp(dioRemote),
); );
diChicken.registerLazySingleton<AuthRepository>( diChicken.registerLazySingleton<AuthRepository>(
@@ -122,3 +122,32 @@ Future<void> newSetupAuthDI(String newUrl) async {
); );
} }
} }
Future<void> removeChickenDI() async {
if (diChicken.isRegistered<DioErrorHandler>()) {
diChicken.unregister<DioErrorHandler>();
}
if (diChicken.isRegistered<AppInterceptor>(instanceName: 'chickenInterceptor')) {
diChicken.unregister<AppInterceptor>(instanceName: 'chickenInterceptor');
}
if (diChicken.isRegistered<DioRemote>()) {
diChicken.unregister<DioRemote>();
}
if (diChicken.isRegistered<AuthRemoteDataSource>()) {
diChicken.unregister<AuthRemoteDataSource>();
}
if (diChicken.isRegistered<AuthRepository>()) {
diChicken.unregister<AuthRepository>();
}
if (diChicken.isRegistered<ChickenRemoteDatasource>()) {
diChicken.unregister<ChickenRemoteDatasource>();
}
if (diChicken.isRegistered<ChickenLocalDataSource>()) {
diChicken.unregister<ChickenLocalDataSource>();
}
if (diChicken.isRegistered<ChickenRepository>()) {
diChicken.unregister<ChickenRepository>();
}
}

View File

@@ -10,7 +10,6 @@ class DioRemote implements IHttpClient {
@override @override
Future<void> init() async { Future<void> init() async {
fLog(baseUrl);
dio = Dio(BaseOptions(baseUrl: baseUrl ?? '')); dio = Dio(BaseOptions(baseUrl: baseUrl ?? ''));
if (interceptors != null) { if (interceptors != null) {
interceptors!.dio = dio; interceptors!.dio = dio;

View File

@@ -97,7 +97,7 @@ dev_dependencies:
build_runner: ^2.7.0 build_runner: ^2.7.0
hive_ce_generator: ^1.9.3 hive_ce_generator: ^1.9.3
freezed: ^3.2.0 freezed: ^3.2.0
json_serializable: ^6.10.0 json_serializable: ^6.11.0
test: ^1.24.0 test: ^1.24.0

View File

@@ -30,21 +30,20 @@ Future<void> setupInspectionDI() async {
}, },
authArguments: Module.inspection, authArguments: Module.inspection,
), ),
instanceName: 'inspectionInterceptor',
); );
diInspection.registerLazySingleton<DioRemote>(() { diInspection.registerLazySingleton<DioRemote>(() {
return DioRemote( return DioRemote(
baseUrl: tokenService.baseurl.value, baseUrl: tokenService.baseurl.value,
interceptors: diInspection.get<AppInterceptor>(instanceName: 'inspectionInterceptor'), interceptors: diInspection.get<AppInterceptor>(),
); );
}, instanceName: 'inspectionDioRemote'); });
var dioRemote = diInspection.get<DioRemote>(instanceName: 'inspectionDioRemote'); var dioRemote = diInspection.get<DioRemote>();
await dioRemote.init(); await dioRemote.init();
diInspection.registerLazySingleton<AuthRemote>( diInspection.registerLazySingleton<AuthRemote>(
() => AuthRemoteImp(diInspection.get<DioRemote>(instanceName: 'inspectionDioRemote')), () => AuthRemoteImp(dioRemote),
); );
diInspection.registerSingleton<AuthRepositoryImpl>( diInspection.registerSingleton<AuthRepositoryImpl>(
@@ -52,7 +51,7 @@ Future<void> setupInspectionDI() async {
); );
diInspection.registerSingleton<UserRemoteDataSourceImp>( diInspection.registerSingleton<UserRemoteDataSourceImp>(
UserRemoteDataSourceImp(diInspection.get<DioRemote>(instanceName: 'inspectionDioRemote')), UserRemoteDataSourceImp(dioRemote),
); );
diInspection.registerSingleton<UserRepositoryImp>( diInspection.registerSingleton<UserRepositoryImp>(
@@ -60,7 +59,7 @@ Future<void> setupInspectionDI() async {
); );
diInspection.registerSingleton<InspectionRemoteDataSourceImp>( diInspection.registerSingleton<InspectionRemoteDataSourceImp>(
InspectionRemoteDataSourceImp(diInspection.get<DioRemote>(instanceName: 'inspectionDioRemote')), InspectionRemoteDataSourceImp(dioRemote),
); );
diInspection.registerSingleton<InspectionRepositoryImp>( diInspection.registerSingleton<InspectionRepositoryImp>(
@@ -69,3 +68,37 @@ Future<void> setupInspectionDI() async {
diInspection.registerSingleton(ImagePicker()); diInspection.registerSingleton(ImagePicker());
} }
Future<void> removeInspectionDI() async {
if (diInspection.isRegistered<DioErrorHandler>()) {
diInspection.unregister<DioErrorHandler>();
}
if (diInspection.isRegistered<AppInterceptor>()) {
diInspection.unregister<AppInterceptor>();
}
if (diInspection.isRegistered<DioRemote>()) {
diInspection.unregister<DioRemote>();
}
if (diInspection.isRegistered<AuthRemote>()) {
diInspection.unregister<AuthRemote>();
}
if (diInspection.isRegistered<AuthRepositoryImpl>()) {
diInspection.unregister<AuthRepositoryImpl>();
}
if (diInspection.isRegistered<UserRemoteDataSourceImp>()) {
diInspection.unregister<UserRemoteDataSourceImp>();
}
if (diInspection.isRegistered<UserRepositoryImp>()) {
diInspection.unregister<UserRepositoryImp>();
}
if (diInspection.isRegistered<InspectionRemoteDataSourceImp>()) {
diInspection.unregister<InspectionRemoteDataSourceImp>();
}
if (diInspection.isRegistered<InspectionRepositoryImp>()) {
diInspection.unregister<InspectionRepositoryImp>();
}
if (diInspection.isRegistered<ImagePicker>()) {
diInspection.unregister<ImagePicker>();
}
}

View File

@@ -77,18 +77,18 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: build name: build
sha256: "7d95cbbb1526ab5ae977df9b4cc660963b9b27f6d1075c0b34653868911385e4" sha256: "6439a9c71a4e6eca8d9490c1b380a25b02675aa688137dfbe66d2062884a23ac"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.0.0" version: "3.0.2"
build_config: build_config:
dependency: transitive dependency: transitive
description: description:
name: build_config name: build_config
sha256: "4ae2de3e1e67ea270081eaee972e1bd8f027d459f249e0f1186730784c2e7e33" sha256: "4f64382b97504dc2fcdf487d5aae33418e08b4703fc21249e4db6d804a4d0187"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.1.2" version: "1.2.0"
build_daemon: build_daemon:
dependency: transitive dependency: transitive
description: description:
@@ -101,26 +101,26 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: build_resolvers name: build_resolvers
sha256: "38c9c339333a09b090a638849a4c56e70a404c6bdd3b511493addfbc113b60c2" sha256: "2b21a125d66a86b9511cc3fb6c668c42e9a1185083922bf60e46d483a81a9712"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.0.0" version: "3.0.2"
build_runner: build_runner:
dependency: "direct dev" dependency: "direct dev"
description: description:
name: build_runner name: build_runner
sha256: b971d4a1c789eba7be3e6fe6ce5e5b50fd3719e3cb485b3fad6d04358304351d sha256: fd3c09f4bbff7fa6e8d8ef688a0b2e8a6384e6483a25af0dac75fef362bcfe6f
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.6.0" version: "2.7.0"
build_runner_core: build_runner_core:
dependency: transitive dependency: transitive
description: description:
name: build_runner_core name: build_runner_core
sha256: c04e612ca801cd0928ccdb891c263a2b1391cb27940a5ea5afcf9ba894de5d62 sha256: ab27e46c8aa233e610cf6084ee6d8a22c6f873a0a9929241d8855b7a72978ae7
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "9.2.0" version: "9.3.0"
built_collection: built_collection:
dependency: transitive dependency: transitive
description: description:
@@ -137,6 +137,30 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "8.11.0" version: "8.11.0"
cached_network_image:
dependency: transitive
description:
name: cached_network_image
sha256: "7c1183e361e5c8b0a0f21a28401eecdbde252441106a9816400dd4c2b2424916"
url: "https://pub.dev"
source: hosted
version: "3.4.1"
cached_network_image_platform_interface:
dependency: transitive
description:
name: cached_network_image_platform_interface
sha256: "35814b016e37fbdc91f7ae18c8caf49ba5c88501813f73ce8a07027a395e2829"
url: "https://pub.dev"
source: hosted
version: "4.1.1"
cached_network_image_web:
dependency: transitive
description:
name: cached_network_image_web
sha256: "980842f4e8e2535b8dbd3d5ca0b1f0ba66bf61d14cc3a17a9b4788a3685ba062"
url: "https://pub.dev"
source: hosted
version: "1.3.1"
characters: characters:
dependency: transitive dependency: transitive
description: description:
@@ -385,11 +409,27 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.1.1" version: "1.1.1"
flat_buffers:
dependency: transitive
description:
name: flat_buffers
sha256: "380bdcba5664a718bfd4ea20a45d39e13684f5318fcd8883066a55e21f37f4c3"
url: "https://pub.dev"
source: hosted
version: "23.5.26"
flutter: flutter:
dependency: "direct main" dependency: "direct main"
description: flutter description: flutter
source: sdk source: sdk
version: "0.0.0" version: "0.0.0"
flutter_cache_manager:
dependency: transitive
description:
name: flutter_cache_manager
sha256: "400b6592f16a4409a7f2bb929a9a7e38c72cceb8ffb99ee57bbf2cb2cecf8386"
url: "https://pub.dev"
source: hosted
version: "3.4.1"
flutter_gen_core: flutter_gen_core:
dependency: transitive dependency: transitive
description: description:
@@ -451,6 +491,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "7.0.0" version: "7.0.0"
flutter_map_tile_caching:
dependency: transitive
description:
name: flutter_map_tile_caching
sha256: "1839c6157cf9b444083a626b30f3ba9f6db802ac8bb5292440e1628882faa392"
url: "https://pub.dev"
source: hosted
version: "10.0.0"
flutter_plugin_android_lifecycle: flutter_plugin_android_lifecycle:
dependency: transitive dependency: transitive
description: description:
@@ -527,10 +575,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: flutter_slidable name: flutter_slidable
sha256: ab7dbb16f783307c9d7762ede2593ce32c220ba2ba0fd540a3db8e9a3acba71a sha256: e6bd17290cf0d011f9ed66c74d4159b8fe3b3050afedac0f11fab1ba8687e710
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "4.0.0" version: "4.0.1"
flutter_svg: flutter_svg:
dependency: transitive dependency: transitive
description: description:
@@ -889,10 +937,10 @@ packages:
dependency: "direct dev" dependency: "direct dev"
description: description:
name: json_serializable name: json_serializable
sha256: ce2cf974ccdee13be2a510832d7fba0b94b364e0b0395dee42abaa51b855be27 sha256: "3f2913b7c2430afe8ac5afe6fb15c1de4a60af4f630625e6e238f80ba4b80cbd"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "6.10.0" version: "6.11.0"
latlong2: latlong2:
dependency: transitive dependency: transitive
description: description:
@@ -1045,6 +1093,30 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.2" version: "2.0.2"
objectbox:
dependency: transitive
description:
name: objectbox
sha256: "25c2e24b417d938decb5598682dc831bc6a21856eaae65affbc57cfad326808d"
url: "https://pub.dev"
source: hosted
version: "4.3.0"
objectbox_flutter_libs:
dependency: transitive
description:
name: objectbox_flutter_libs
sha256: "574b0233ba79a7159fca9049c67974f790a2180b6141d4951112b20bd146016a"
url: "https://pub.dev"
source: hosted
version: "4.3.0"
octo_image:
dependency: transitive
description:
name: octo_image
sha256: "34faa6639a78c7e3cbe79be6f9f96535867e879748ade7d17c9b1ae7536293bd"
url: "https://pub.dev"
source: hosted
version: "2.1.0"
package_config: package_config:
dependency: transitive dependency: transitive
description: description:
@@ -1353,14 +1425,22 @@ packages:
description: flutter description: flutter
source: sdk source: sdk
version: "0.0.0" version: "0.0.0"
smooth_page_indicator:
dependency: transitive
description:
name: smooth_page_indicator
sha256: b21ebb8bc39cf72d11c7cfd809162a48c3800668ced1c9da3aade13a32cf6c1c
url: "https://pub.dev"
source: hosted
version: "1.2.1"
source_gen: source_gen:
dependency: transitive dependency: transitive
description: description:
name: source_gen name: source_gen
sha256: fc787b1f89ceac9580c3616f899c9a447413cbdac1df071302127764c023a134 sha256: "7b19d6ba131c6eb98bfcbf8d56c1a7002eba438af2e7ae6f8398b2b0f4f381e3"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.0.0" version: "3.1.0"
source_helper: source_helper:
dependency: transitive dependency: transitive
description: description:
@@ -1401,6 +1481,46 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "7.0.0" version: "7.0.0"
sqflite:
dependency: transitive
description:
name: sqflite
sha256: e2297b1da52f127bc7a3da11439985d9b536f75070f3325e62ada69a5c585d03
url: "https://pub.dev"
source: hosted
version: "2.4.2"
sqflite_android:
dependency: transitive
description:
name: sqflite_android
sha256: ecd684501ebc2ae9a83536e8b15731642b9570dc8623e0073d227d0ee2bfea88
url: "https://pub.dev"
source: hosted
version: "2.4.2+2"
sqflite_common:
dependency: transitive
description:
name: sqflite_common
sha256: "6ef422a4525ecc601db6c0a2233ff448c731307906e92cabc9ba292afaae16a6"
url: "https://pub.dev"
source: hosted
version: "2.5.6"
sqflite_darwin:
dependency: transitive
description:
name: sqflite_darwin
sha256: "279832e5cde3fe99e8571879498c9211f3ca6391b0d818df4e17d9fff5c6ccb3"
url: "https://pub.dev"
source: hosted
version: "2.4.2"
sqflite_platform_interface:
dependency: transitive
description:
name: sqflite_platform_interface
sha256: "8dd4515c7bdcae0a785b0062859336de775e8c65db81ae33dd5445f35be61920"
url: "https://pub.dev"
source: hosted
version: "2.4.0"
stack_trace: stack_trace:
dependency: transitive dependency: transitive
description: description:
@@ -1433,6 +1553,14 @@ packages:
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.4.1" version: "1.4.1"
synchronized:
dependency: transitive
description:
name: synchronized
sha256: c254ade258ec8282947a0acbbc90b9575b4f19673533ee46f2f6e9b3aeefd7c0
url: "https://pub.dev"
source: hosted
version: "3.4.0"
term_glyph: term_glyph:
dependency: transitive dependency: transitive
description: description:

View File

@@ -21,10 +21,10 @@ dev_dependencies:
lints: ^6.0.0 lints: ^6.0.0
test: ^1.25.15 test: ^1.25.15
##code generation ##code generation
build_runner: ^2.6.0 build_runner: ^2.7.0
hive_ce_generator: ^1.9.3 hive_ce_generator: ^1.9.3
freezed: ^3.2.0 freezed: ^3.2.0
json_serializable: ^6.10.0 json_serializable: ^6.11.0
##test ##test
mocktail: ^1.0.4 mocktail: ^1.0.4

View File

@@ -26,9 +26,6 @@ Future<void> setupLiveStockDI() async {
await tokenService.saveBaseUrl('https://api.dam.rasadyar.net/'); await tokenService.saveBaseUrl('https://api.dam.rasadyar.net/');
} }
// First register AppInterceptor with lazy callbacks // First register AppInterceptor with lazy callbacks
diLiveStock.registerLazySingleton<AppInterceptor>( diLiveStock.registerLazySingleton<AppInterceptor>(
() => AppInterceptor( () => AppInterceptor(
@@ -96,3 +93,33 @@ Future<void> setupLiveStockDI() async {
diLiveStock.registerLazySingleton<ImagePicker>(() => ImagePicker()); diLiveStock.registerLazySingleton<ImagePicker>(() => ImagePicker());
await diLiveStock.allReady(); await diLiveStock.allReady();
} }
Future<void> removeLiveStockDI() async {
if (diLiveStock.isRegistered<DioErrorHandler>()) {
diLiveStock.unregister<DioErrorHandler>();
}
if (diLiveStock.isRegistered<AppInterceptor>()) {
diLiveStock.unregister<AppInterceptor>();
}
if (diLiveStock.isRegistered<DioRemote>()) {
diLiveStock.unregister<DioRemote>();
}
if (diLiveStock.isRegistered<AuthRemoteDataSource>()) {
diLiveStock.unregister<AuthRemoteDataSource>();
}
if (diLiveStock.isRegistered<AuthRepository>()) {
diLiveStock.unregister<AuthRepository>();
}
if (diLiveStock.isRegistered<LivestockRemoteDataSource>()) {
diLiveStock.unregister<LivestockRemoteDataSource>();
}
if (diLiveStock.isRegistered<TmpLocalDataSource>()) {
diLiveStock.unregister<TmpLocalDataSource>();
}
if (diLiveStock.isRegistered<LivestockRepository>()) {
diLiveStock.unregister<LivestockRepository>();
}
if (diLiveStock.isRegistered<ImagePicker>()) {
diLiveStock.unregister<ImagePicker>();
}
}

View File

@@ -27,7 +27,7 @@ dev_dependencies:
build_runner: ^2.7.0 build_runner: ^2.7.0
hive_ce_generator: ^1.9.3 hive_ce_generator: ^1.9.3
freezed: ^3.2.0 freezed: ^3.2.0
json_serializable: ^6.10.0 json_serializable: ^6.11.0
##test ##test
mocktail: ^1.0.4 mocktail: ^1.0.4

View File

@@ -945,10 +945,10 @@ packages:
dependency: "direct dev" dependency: "direct dev"
description: description:
name: json_serializable name: json_serializable
sha256: ce2cf974ccdee13be2a510832d7fba0b94b364e0b0395dee42abaa51b855be27 sha256: "3f2913b7c2430afe8ac5afe6fb15c1de4a60af4f630625e6e238f80ba4b80cbd"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "6.10.0" version: "6.11.0"
latlong2: latlong2:
dependency: transitive dependency: transitive
description: description:
@@ -1442,10 +1442,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: source_gen name: source_gen
sha256: fc787b1f89ceac9580c3616f899c9a447413cbdac1df071302127764c023a134 sha256: "7b19d6ba131c6eb98bfcbf8d56c1a7002eba438af2e7ae6f8398b2b0f4f381e3"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.0.0" version: "3.1.0"
source_helper: source_helper:
dependency: transitive dependency: transitive
description: description:

View File

@@ -39,7 +39,7 @@ dev_dependencies:
build_runner: ^2.7.0 build_runner: ^2.7.0
hive_ce_generator: ^1.9.3 hive_ce_generator: ^1.9.3
freezed: ^3.2.0 freezed: ^3.2.0
json_serializable: ^6.10.0 json_serializable: ^6.11.0
flutter_gen_runner: ^5.11.0 flutter_gen_runner: ^5.11.0
change_app_package_name: ^1.5.0 change_app_package_name: ^1.5.0