image_grid.dart 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import 'package:flutter/material.dart';
  2. import 'package:hooks_riverpod/hooks_riverpod.dart';
  3. import 'package:immich_mobile/modules/home/ui/asset_grid/thumbnail_image.dart';
  4. import 'package:openapi/api.dart';
  5. // ignore: must_be_immutable
  6. class ImageGrid extends ConsumerWidget {
  7. final List<AssetResponseDto> assetGroup;
  8. final List<AssetResponseDto> sortedAssetGroup;
  9. final int tilesPerRow;
  10. final bool showStorageIndicator;
  11. ImageGrid({
  12. Key? key,
  13. required this.assetGroup,
  14. required this.sortedAssetGroup,
  15. this.tilesPerRow = 4,
  16. this.showStorageIndicator = true,
  17. }) : super(key: key);
  18. List<AssetResponseDto> imageSortedList = [];
  19. @override
  20. Widget build(BuildContext context, WidgetRef ref) {
  21. return SliverGrid(
  22. gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
  23. crossAxisCount: tilesPerRow,
  24. crossAxisSpacing: 5.0,
  25. mainAxisSpacing: 5,
  26. ),
  27. delegate: SliverChildBuilderDelegate(
  28. (BuildContext context, int index) {
  29. var assetType = assetGroup[index].type;
  30. return GestureDetector(
  31. onTap: () {},
  32. child: ThumbnailImage(
  33. asset: assetGroup[index],
  34. assetList: sortedAssetGroup,
  35. showStorageIndicator: showStorageIndicator,
  36. ),
  37. );
  38. },
  39. childCount: assetGroup.length,
  40. ),
  41. );
  42. }
  43. }