diff --git a/mobile/lib/modules/asset_viewer/views/gallery_viewer.dart b/mobile/lib/modules/asset_viewer/views/gallery_viewer.dart index 751892f16b..e850d260e7 100644 --- a/mobile/lib/modules/asset_viewer/views/gallery_viewer.dart +++ b/mobile/lib/modules/asset_viewer/views/gallery_viewer.dart @@ -35,13 +35,16 @@ class GalleryViewerPage extends HookConsumerWidget { final Asset asset; GalleryViewerPage({ - Key? key, + super.key, required this.assetList, required this.asset, - }) : super(key: key); + }) : controller = + PageController(initialPage: assetList.indexOf(asset)); Asset? assetDetail; + late PageController controller; + @override Widget build(BuildContext context, WidgetRef ref) { final Box box = Hive.box(userInfoBox); @@ -56,9 +59,6 @@ class GalleryViewerPage extends HookConsumerWidget { late Offset localPosition; final authToken = 'Bearer ${box.get(accessTokenKey)}'; - PageController controller = - PageController(initialPage: assetList.indexOf(asset)); - useEffect( () { isLoadPreview.value = @@ -187,8 +187,17 @@ class GalleryViewerPage extends HookConsumerWidget { builder: (BuildContext _) { return DeleteDialog( onDelete: () { + if (assetList.length == 1) { + // Handle only one asset + AutoRouter.of(context).pop(); + } else { + // Go to next page otherwise + controller.nextPage( + duration: const Duration(milliseconds: 100), + curve: Curves.fastLinearToSlowEaseIn, + ); + } ref.watch(assetProvider.notifier).deleteAssets({deleteAsset}); - AutoRouter.of(context).pop(null); }, ); },