refactor: remove user prop from provider

This commit is contained in:
Yaros
2025-12-11 20:40:23 +01:00
parent 63c1c9e376
commit d2cb376f77
2 changed files with 8 additions and 5 deletions

View File

@@ -236,7 +236,7 @@ class _AssetDetailBottomSheet extends ConsumerWidget {
final lensTitle = exifInfo?.lens != null && exifInfo!.lens!.isNotEmpty ? exifInfo.lens : null; final lensTitle = exifInfo?.lens != null && exifInfo!.lens!.isNotEmpty ? exifInfo.lens : null;
final isOwner = ref.watch(currentUserProvider)?.id == (asset is RemoteAsset ? asset.ownerId : null); final isOwner = ref.watch(currentUserProvider)?.id == (asset is RemoteAsset ? asset.ownerId : null);
final isRatingEnabled = ref final isRatingEnabled = ref
.watch(userMetadataPreferencesProvider(ref.watch(currentUserProvider)?.id ?? '')) .watch(userMetadataPreferencesProvider)
.maybeWhen(data: (prefs) => prefs?.ratingsEnabled ?? false, orElse: () => false); .maybeWhen(data: (prefs) => prefs?.ratingsEnabled ?? false, orElse: () => false);
// Build file info tile based on asset type // Build file info tile based on asset type

View File

@@ -2,18 +2,21 @@ import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:immich_mobile/domain/models/user_metadata.model.dart'; import 'package:immich_mobile/domain/models/user_metadata.model.dart';
import 'package:immich_mobile/infrastructure/repositories/user_metadata.repository.dart'; import 'package:immich_mobile/infrastructure/repositories/user_metadata.repository.dart';
import 'package:immich_mobile/providers/infrastructure/db.provider.dart'; import 'package:immich_mobile/providers/infrastructure/db.provider.dart';
import 'package:immich_mobile/providers/user.provider.dart';
final userMetadataRepository = Provider<DriftUserMetadataRepository>( final userMetadataRepository = Provider<DriftUserMetadataRepository>(
(ref) => DriftUserMetadataRepository(ref.watch(driftProvider)), (ref) => DriftUserMetadataRepository(ref.watch(driftProvider)),
); );
final userMetadataProvider = FutureProvider.family<List<UserMetadata>, String>((ref, String userId) async { final userMetadataProvider = FutureProvider<List<UserMetadata>>((ref) async {
final repository = ref.watch(userMetadataRepository); final repository = ref.watch(userMetadataRepository);
return repository.getUserMetadata(userId); final user = ref.watch(currentUserProvider);
if (user == null) return [];
return repository.getUserMetadata(user.id);
}); });
final userMetadataPreferencesProvider = FutureProvider.family<Preferences?, String>((ref, String userId) async { final userMetadataPreferencesProvider = FutureProvider<Preferences?>((ref) async {
final metadataList = await ref.watch(userMetadataProvider(userId).future); final metadataList = await ref.watch(userMetadataProvider.future);
final metadataWithPrefs = metadataList.firstWhere((meta) => meta.preferences != null); final metadataWithPrefs = metadataList.firstWhere((meta) => meta.preferences != null);
return metadataWithPrefs.preferences; return metadataWithPrefs.preferences;
}); });