mirror of
https://github.com/immich-app/immich.git
synced 2026-05-18 03:10:24 +03:00
refactor: app metadata
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
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';
|
||||
|
||||
final metadataProvider = Provider.autoDispose<CachedMetadataRepository>((_) => CachedMetadataRepository.instance);
|
||||
|
||||
final appConfigProvider = Provider.autoDispose<AppConfig>((ref) {
|
||||
final subscription = ref.watch(metadataProvider).watch(MetadataKind.appConfig).listen((event) {
|
||||
ref.state = event;
|
||||
});
|
||||
ref.onDispose(subscription.cancel);
|
||||
return ref.watch(metadataProvider).read(MetadataKind.appConfig);
|
||||
});
|
||||
|
||||
final systemConfigProvider = Provider.autoDispose<SystemConfig>((ref) {
|
||||
final subscription = ref.watch(metadataProvider).watch(MetadataKind.systemConfig).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);
|
||||
});
|
||||
@@ -1,27 +1,15 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||
|
||||
import 'package:immich_mobile/constants/colors.dart';
|
||||
import 'package:immich_mobile/theme/color_scheme.dart';
|
||||
import 'package:immich_mobile/theme/theme_data.dart';
|
||||
import 'package:immich_mobile/theme/dynamic_theme.dart';
|
||||
import 'package:immich_mobile/providers/app_settings.provider.dart';
|
||||
import 'package:immich_mobile/providers/infrastructure/metadata.provider.dart';
|
||||
import 'package:immich_mobile/services/app_settings.service.dart';
|
||||
import 'package:immich_mobile/theme/color_scheme.dart';
|
||||
import 'package:immich_mobile/theme/dynamic_theme.dart';
|
||||
import 'package:immich_mobile/theme/theme_data.dart';
|
||||
import 'package:immich_mobile/utils/debug_print.dart';
|
||||
|
||||
final immichThemeModeProvider = StateProvider<ThemeMode>((ref) {
|
||||
final themeMode = ref.watch(appSettingsServiceProvider).getSetting(AppSettingsEnum.themeMode);
|
||||
|
||||
dPrint(() => "Current themeMode $themeMode");
|
||||
|
||||
if (themeMode == ThemeMode.light.name) {
|
||||
return ThemeMode.light;
|
||||
} else if (themeMode == ThemeMode.dark.name) {
|
||||
return ThemeMode.dark;
|
||||
} else {
|
||||
return ThemeMode.system;
|
||||
}
|
||||
});
|
||||
final immichThemeModeProvider = StateProvider<ThemeMode>((ref) => ref.read(appConfigProvider).theme.mode);
|
||||
|
||||
final immichThemePresetProvider = StateProvider<ImmichColorPreset>((ref) {
|
||||
final appSettingsProvider = ref.watch(appSettingsServiceProvider);
|
||||
|
||||
Reference in New Issue
Block a user