12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- import 'package:cached_network_image/cached_network_image.dart';
- import 'package:flutter/material.dart';
- import 'package:flutter_hooks/flutter_hooks.dart';
- import 'package:hive_flutter/hive_flutter.dart';
- import 'package:hooks_riverpod/hooks_riverpod.dart';
- import 'package:immich_mobile/constants/hive_box.dart';
- import 'package:openapi/api.dart';
- class SharedAlbumThumbnailImage extends HookConsumerWidget {
- final AssetResponseDto asset;
- const SharedAlbumThumbnailImage({Key? key, required this.asset})
- : super(key: key);
- @override
- Widget build(BuildContext context, WidgetRef ref) {
- final cacheKey = useState(1);
- var box = Hive.box(userInfoBox);
- var thumbnailRequestUrl =
- '${box.get(serverEndpointKey)}/asset/thumbnail/${asset.id}';
- return GestureDetector(
- onTap: () {
- // debugPrint("View ${asset.id}");
- },
- child: Stack(
- children: [
- CachedNetworkImage(
- cacheKey: "${asset.id}-${cacheKey.value}",
- width: 500,
- height: 500,
- memCacheHeight: 500,
- fit: BoxFit.cover,
- imageUrl: thumbnailRequestUrl,
- httpHeaders: {"Authorization": "Bearer ${box.get(accessTokenKey)}"},
- fadeInDuration: const Duration(milliseconds: 250),
- progressIndicatorBuilder: (context, url, downloadProgress) =>
- Transform.scale(
- scale: 0.2,
- child:
- CircularProgressIndicator(value: downloadProgress.progress),
- ),
- errorWidget: (context, url, error) {
- return Icon(
- Icons.image_not_supported_outlined,
- color: Theme.of(context).primaryColor,
- );
- },
- ),
- ],
- ),
- );
- }
- }
|