refactor to per row store

This commit is contained in:
shenlong-tanwen
2026-04-29 00:43:52 +07:00
parent cc56f86333
commit 5933664862
22 changed files with 338 additions and 266 deletions
@@ -1,32 +1,20 @@
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:immich_mobile/domain/models/config/app_config.dart';
import 'package:immich_mobile/domain/models/config/system_config.dart';
import 'package:immich_mobile/domain/models/metadata/system_metadata.dart';
import 'package:immich_mobile/domain/models/metadata_kind.dart';
import 'package:immich_mobile/infrastructure/repositories/cached_metadata.repository.dart';
import 'package:immich_mobile/infrastructure/repositories/metadata.repository.dart';
final metadataProvider = Provider.autoDispose<CachedMetadataRepository>((_) => CachedMetadataRepository.instance);
final metadataProvider = Provider<MetadataRepository>((_) => MetadataRepository.instance);
final appConfigProvider = Provider.autoDispose<AppConfig>((ref) {
final subscription = ref.watch(metadataProvider).watch(MetadataKind.appConfig).listen((event) {
ref.state = event;
});
final repo = ref.watch(metadataProvider);
final subscription = repo.watchAppConfig().listen((event) => ref.state = event);
ref.onDispose(subscription.cancel);
return ref.watch(metadataProvider).read(MetadataKind.appConfig);
return repo.appConfig;
});
final systemConfigProvider = Provider.autoDispose<SystemConfig>((ref) {
final subscription = ref.watch(metadataProvider).watch(MetadataKind.systemConfig).listen((event) {
ref.state = event;
});
final repo = ref.watch(metadataProvider);
final subscription = repo.watchSystemConfig().listen((event) => ref.state = event);
ref.onDispose(subscription.cancel);
return ref.watch(metadataProvider).read(MetadataKind.systemConfig);
});
final systemMetadataProvider = Provider.autoDispose<SystemMetadata>((ref) {
final subscription = ref.watch(metadataProvider).watch(MetadataKind.systemMetadata).listen((event) {
ref.state = event;
});
ref.onDispose(subscription.cancel);
return ref.watch(metadataProvider).read(MetadataKind.systemMetadata);
return repo.systemConfig;
});