diff --git a/mobile/lib/presentation/widgets/action_buttons/delete_permanent_action_button.widget.dart b/mobile/lib/presentation/widgets/action_buttons/delete_permanent_action_button.widget.dart index 2dd9a265ed..710ec506c2 100644 --- a/mobile/lib/presentation/widgets/action_buttons/delete_permanent_action_button.widget.dart +++ b/mobile/lib/presentation/widgets/action_buttons/delete_permanent_action_button.widget.dart @@ -8,6 +8,7 @@ import 'package:immich_mobile/extensions/translate_extensions.dart'; import 'package:immich_mobile/presentation/widgets/action_buttons/base_action_button.widget.dart'; import 'package:immich_mobile/providers/infrastructure/action.provider.dart'; import 'package:immich_mobile/providers/timeline/multiselect.provider.dart'; +import 'package:immich_mobile/widgets/asset_grid/permanent_delete_dialog.dart'; import 'package:immich_mobile/widgets/common/immich_toast.dart'; /// This delete action has the following behavior: @@ -25,6 +26,15 @@ class DeletePermanentActionButton extends ConsumerWidget { return; } + final count = source == ActionSource.viewer ? 1 : ref.read(multiSelectProvider).selectedAssets.length; + final confirm = + await showDialog( + context: context, + builder: (context) => PermanentDeleteDialog(count: count), + ) ?? + false; + if (!confirm) return; + final result = await ref.read(actionProvider.notifier).deleteRemoteAndLocal(source); ref.read(multiSelectProvider.notifier).reset(); diff --git a/mobile/lib/presentation/widgets/action_buttons/delete_trash_action_button.widget.dart b/mobile/lib/presentation/widgets/action_buttons/delete_trash_action_button.widget.dart index 0d9bc41734..d19a188561 100644 --- a/mobile/lib/presentation/widgets/action_buttons/delete_trash_action_button.widget.dart +++ b/mobile/lib/presentation/widgets/action_buttons/delete_trash_action_button.widget.dart @@ -5,7 +5,7 @@ import 'package:immich_mobile/constants/enums.dart'; import 'package:immich_mobile/extensions/translate_extensions.dart'; import 'package:immich_mobile/providers/infrastructure/action.provider.dart'; import 'package:immich_mobile/providers/timeline/multiselect.provider.dart'; -import 'package:immich_mobile/widgets/asset_grid/trash_delete_dialog.dart'; +import 'package:immich_mobile/widgets/asset_grid/permanent_delete_dialog.dart'; import 'package:immich_mobile/widgets/common/immich_toast.dart'; /// This delete action has the following behavior: @@ -28,7 +28,7 @@ class DeleteTrashActionButton extends ConsumerWidget { final confirmDelete = await showDialog( context: context, - builder: (context) => TrashDeleteDialog(count: selectCount), + builder: (context) => PermanentDeleteDialog(count: selectCount), ) ?? false; if (!confirmDelete) { diff --git a/mobile/lib/widgets/asset_grid/trash_delete_dialog.dart b/mobile/lib/widgets/asset_grid/permanent_delete_dialog.dart similarity index 92% rename from mobile/lib/widgets/asset_grid/trash_delete_dialog.dart rename to mobile/lib/widgets/asset_grid/permanent_delete_dialog.dart index eaca04b481..18265b8d46 100644 --- a/mobile/lib/widgets/asset_grid/trash_delete_dialog.dart +++ b/mobile/lib/widgets/asset_grid/permanent_delete_dialog.dart @@ -3,8 +3,8 @@ import 'package:immich_mobile/extensions/build_context_extensions.dart'; import 'package:immich_mobile/generated/translations.g.dart'; import 'package:immich_ui/immich_ui.dart'; -class TrashDeleteDialog extends StatelessWidget { - const TrashDeleteDialog({super.key, required this.count}); +class PermanentDeleteDialog extends StatelessWidget { + const PermanentDeleteDialog({super.key, required this.count}); final int count;