[PR #25113] feat(mobile): add confirmation dialogs to delete action buttons #18078

Open
opened 2026-02-05 16:32:16 +03:00 by OVERLORD · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/immich-app/immich/pull/25113
Author: @ByteSizedMarius
Created: 1/7/2026
Status: 🔄 Open

Base: mainHead: feat/mobile-delete-confirmation-dialogs


📝 Commits (1)

  • 5499459 feat(mobile): add confirmation dialogs to delete action buttons

📊 Changes

4 files changed (+39 additions, -4 deletions)

View changed files

📝 i18n/en.json (+2 -1)
📝 mobile/lib/presentation/widgets/action_buttons/delete_action_button.widget.dart (+1 -1)
📝 mobile/lib/presentation/widgets/action_buttons/delete_permanent_action_button.widget.dart (+35 -1)
📝 mobile/lib/presentation/widgets/asset_viewer/bottom_bar.widget.dart (+1 -1)

📄 Description

Description

Adds confirmation dialogs to DeleteActionButton and DeletePermanentActionButton to prevent accidental deletion. Addresses https://github.com/immich-app/immich/issues/19775.

When deleting photos/videos from grid view (multiselect), there's no confirmation dialog. This is particularly dangerous for locked folder content where deletion is permanent and irreversible. This is an opinionated change and open to discussion, but in my opinion, deletions (especially permanent, but also when sent to trash) should always have a confirmation.

I also changed the confirmation text in english, as I found it confusing/difficult to understand.

Ref https://github.com/immich-app/immich/pull/25111

Changes

  • DeleteActionButton: Change showConfirmation default from false to true (note: maybe these params could be removed, but I kept/added them for consistency)
  • DeletePermanentActionButton: Add showConfirmation parameter (default true) with confirmation dialog
  • Rm redundant showConfirmation: true in bottom_bar.widget.dart
  • Change confirmation message text (previously said "will prompt if you want to delete locally" but there was no such prompt)
  • Add i18n key delete_permanently_action_confirmation_message

How Has This Been Tested?

  • Manual testing: Grid view multiselect → Delete → Confirmation dialog appears
  • Manual testing: Grid view multiselect → Delete Permanently → Confirmation dialog appears
  • Manual testing: Single-item viewer → Delete → Confirmation dialog still works

Checklist:

  • I have performed a self-review of my own code
  • I have made corresponding changes to the documentation if applicable
  • I have no unrelated changes in the PR.
  • I have confirmed that any new dependencies are strictly necessary.
  • I have written tests for new code (if applicable)
  • I have followed naming conventions/patterns in the surrounding code
  • [N/A] All code in src/services/ uses repositories implementations for database calls, filesystem operations, etc.
  • [N/A] All code in src/repositories/ is pretty basic/simple and does not have any immich specific logic (that belongs in src/services/)

Please describe to which degree, if any, an LLM was used in creating this pull request.

Claude Code was used to assist with implementation.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/immich-app/immich/pull/25113 **Author:** [@ByteSizedMarius](https://github.com/ByteSizedMarius) **Created:** 1/7/2026 **Status:** 🔄 Open **Base:** `main` ← **Head:** `feat/mobile-delete-confirmation-dialogs` --- ### 📝 Commits (1) - [`5499459`](https://github.com/immich-app/immich/commit/5499459dfc933f50177be6e698dc31402b5494b8) feat(mobile): add confirmation dialogs to delete action buttons ### 📊 Changes **4 files changed** (+39 additions, -4 deletions) <details> <summary>View changed files</summary> 📝 `i18n/en.json` (+2 -1) 📝 `mobile/lib/presentation/widgets/action_buttons/delete_action_button.widget.dart` (+1 -1) 📝 `mobile/lib/presentation/widgets/action_buttons/delete_permanent_action_button.widget.dart` (+35 -1) 📝 `mobile/lib/presentation/widgets/asset_viewer/bottom_bar.widget.dart` (+1 -1) </details> ### 📄 Description ## Description Adds confirmation dialogs to `DeleteActionButton` and `DeletePermanentActionButton` to prevent accidental deletion. Addresses https://github.com/immich-app/immich/issues/19775. When deleting photos/videos from grid view (multiselect), there's no confirmation dialog. This is particularly dangerous for locked folder content where deletion is permanent and irreversible. This is an opinionated change and open to discussion, but in my opinion, deletions (especially permanent, but also when sent to trash) should always have a confirmation. I also changed the confirmation text in english, as I found it confusing/difficult to understand. Ref https://github.com/immich-app/immich/pull/25111 ### Changes - `DeleteActionButton`: Change `showConfirmation` default from `false` to `true` (note: maybe these params could be removed, but I kept/added them for consistency) - `DeletePermanentActionButton`: Add `showConfirmation` parameter (default `true`) with confirmation dialog - Rm redundant `showConfirmation: true` in `bottom_bar.widget.dart` - Change confirmation message text (previously said "will prompt if you want to delete locally" but there was no such prompt) - Add i18n key `delete_permanently_action_confirmation_message` ## How Has This Been Tested? - [x] Manual testing: Grid view multiselect → Delete → Confirmation dialog appears - [x] Manual testing: Grid view multiselect → Delete Permanently → Confirmation dialog appears - [x] Manual testing: Single-item viewer → Delete → Confirmation dialog still works ## Checklist: - [x] I have performed a self-review of my own code - [x] I have made corresponding changes to the documentation if applicable - [x] I have no unrelated changes in the PR. - [x] I have confirmed that any new dependencies are strictly necessary. - [x] I have written tests for new code (if applicable) - [x] I have followed naming conventions/patterns in the surrounding code - [N/A] All code in `src/services/` uses repositories implementations for database calls, filesystem operations, etc. - [N/A] All code in `src/repositories/` is pretty basic/simple and does not have any immich specific logic (that belongs in `src/services/`) ## Please describe to which degree, if any, an LLM was used in creating this pull request. Claude Code was used to assist with implementation. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
OVERLORD added the pull-request label 2026-02-05 16:32:16 +03:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: immich-app/immich#18078