diff --git a/mobile/lib/presentation/pages/editing/drift_edit.page.dart b/mobile/lib/presentation/pages/editing/drift_edit.page.dart index da62d49b49..e24a1967f2 100644 --- a/mobile/lib/presentation/pages/editing/drift_edit.page.dart +++ b/mobile/lib/presentation/pages/editing/drift_edit.page.dart @@ -50,6 +50,11 @@ class DriftEditImagePage extends ConsumerWidget { return completer.future; } + void _exitEditing(BuildContext context) { + // this assumes that the only way to get to this page is from the AssetViewerRoute + context.navigator.popUntil((route) => route.data?.name == AssetViewerRoute.name); + } + Future _saveEditedImage(BuildContext context, BaseAsset asset, Image image, WidgetRef ref) async { try { final Uint8List imageData = await _imageToUint8List(image); @@ -66,7 +71,7 @@ class DriftEditImagePage extends ConsumerWidget { } ref.read(backgroundSyncProvider).syncLocal(full: true); - context.navigator.popUntil((route) => route.isFirst); + _exitEditing(context); ImmichToast.show(durationInSecond: 3, context: context, msg: 'Image Saved!'); if (localAsset == null) { @@ -91,7 +96,7 @@ class DriftEditImagePage extends ConsumerWidget { backgroundColor: context.scaffoldBackgroundColor, leading: IconButton( icon: Icon(Icons.close_rounded, color: context.primaryColor, size: 24), - onPressed: () => context.navigator.popUntil((route) => route.isFirst), + onPressed: () => _exitEditing(context), ), actions: [ TextButton( diff --git a/mobile/lib/presentation/widgets/action_buttons/edit_image_action_button.widget.dart b/mobile/lib/presentation/widgets/action_buttons/edit_image_action_button.widget.dart index cde0db8e18..4c7b6ffbdc 100644 --- a/mobile/lib/presentation/widgets/action_buttons/edit_image_action_button.widget.dart +++ b/mobile/lib/presentation/widgets/action_buttons/edit_image_action_button.widget.dart @@ -1,11 +1,11 @@ +import 'package:auto_route/auto_route.dart'; import 'package:flutter/material.dart'; import 'package:hooks_riverpod/hooks_riverpod.dart'; -import 'package:immich_mobile/extensions/build_context_extensions.dart'; import 'package:immich_mobile/extensions/translate_extensions.dart'; -import 'package:immich_mobile/presentation/pages/editing/drift_edit.page.dart'; import 'package:immich_mobile/presentation/widgets/action_buttons/base_action_button.widget.dart'; import 'package:immich_mobile/presentation/widgets/images/image_provider.dart'; import 'package:immich_mobile/providers/infrastructure/asset_viewer/current_asset.provider.dart'; +import 'package:immich_mobile/routing/router.dart'; class EditImageActionButton extends ConsumerWidget { const EditImageActionButton({super.key}); @@ -20,12 +20,7 @@ class EditImageActionButton extends ConsumerWidget { } final image = Image(image: getFullImageProvider(currentAsset)); - - context.navigator.push( - MaterialPageRoute( - builder: (context) => DriftEditImagePage(asset: currentAsset, image: image, isEdited: false), - ), - ); + context.pushRoute(DriftEditImageRoute(asset: currentAsset, image: image, isEdited: false)); } return BaseActionButton(