import 'package:flutter/material.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; import 'package:immich_mobile/extensions/build_context_extensions.dart'; import 'package:immich_mobile/presentation/widgets/images/thumbnail.widget.dart'; import 'package:immich_mobile/providers/infrastructure/album.provider.dart'; class LocalAlbumThumbnail extends ConsumerWidget { const LocalAlbumThumbnail({ super.key, required this.albumId, }); final String albumId; @override Widget build(BuildContext context, WidgetRef ref) { final localAlbumThumbnail = ref.watch(localAlbumThumbnailProvider(albumId)); return localAlbumThumbnail.when( data: (data) { if (data == null) { return Container( decoration: BoxDecoration( color: context.colorScheme.surfaceContainer, borderRadius: const BorderRadius.all(Radius.circular(16)), border: Border.all( color: context.colorScheme.outline.withAlpha(50), width: 1, ), ), child: Icon( Icons.collections, size: 24, color: context.primaryColor, ), ); } return ClipRRect( borderRadius: const BorderRadius.all(Radius.circular(16)), child: Thumbnail( asset: data, ), ); }, error: (error, stack) { return const Icon(Icons.error, size: 24); }, loading: () => const SizedBox( width: 24, height: 24, child: Center(child: CircularProgressIndicator()), ), ); } }