From 8c315dfeb17d297c1e4a360f7edb5fab3d42cf4c Mon Sep 17 00:00:00 2001 From: martyfuhry Date: Fri, 17 Feb 2023 21:47:28 -0500 Subject: [PATCH] fix(mobile): Delete goes to next page instead of popping back to the main timeline (#1781) * delete goes to next page instead of popping * moves pagecontroller to constructor so we dont rebuilt each time --- .../asset_viewer/views/gallery_viewer.dart | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/mobile/lib/modules/asset_viewer/views/gallery_viewer.dart b/mobile/lib/modules/asset_viewer/views/gallery_viewer.dart index 751892f16b561..e850d260e7cd8 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); }, ); },