45 lines
1.4 KiB
Dart
45 lines
1.4 KiB
Dart
part of 'gallery_view.dart';
|
|
|
|
class _DownloadedGalleryView extends StatelessWidget {
|
|
const _DownloadedGalleryView({
|
|
required this.galleryViewModel,
|
|
super.key,
|
|
});
|
|
|
|
final GalleryViewModel galleryViewModel;
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return DecoratedBox(
|
|
decoration: const BoxDecoration(color: ConstColours.galleryBackgroundColour),
|
|
child: Padding(
|
|
padding: const EdgeInsets.all(8),
|
|
// Using Wrap instead of GridView, to make use of different image sizes
|
|
child: Wrap(
|
|
runSpacing: 24,
|
|
spacing: 8,
|
|
alignment: WrapAlignment.center,
|
|
runAlignment: WrapAlignment.center,
|
|
crossAxisAlignment: WrapCrossAlignment.center,
|
|
children: [
|
|
for (final imageModel in galleryViewModel.imageModels)
|
|
GestureDetector(
|
|
onTap: () => galleryViewModel.pushImageCarouselView(
|
|
context,
|
|
imageModel: imageModel,
|
|
),
|
|
child: CachedNetworkImage(
|
|
imageUrl: imageModel.uri.toString(),
|
|
cacheKey: imageModel.imageIndex.toString(),
|
|
progressIndicatorBuilder: (_, __, final progress) => CircularProgressIndicator(
|
|
value: galleryViewModel.downloadProgressValue(progress: progress),
|
|
),
|
|
),
|
|
),
|
|
],
|
|
),
|
|
),
|
|
);
|
|
}
|
|
}
|