From 1209b8147c4b6a5fda04338b6deabc7a862231f1 Mon Sep 17 00:00:00 2001 From: Gustavo Henrique Santos Souza de Miranda Date: Sun, 29 Jun 2025 21:50:46 -0300 Subject: [PATCH] Added a confirm_delete_modal.py to avoid accidental delete of the photo. --- .../ui/screens/modals/confirm_delete_modal.py | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/pilgrim/ui/screens/modals/confirm_delete_modal.py diff --git a/src/pilgrim/ui/screens/modals/confirm_delete_modal.py b/src/pilgrim/ui/screens/modals/confirm_delete_modal.py new file mode 100644 index 0000000..b987de4 --- /dev/null +++ b/src/pilgrim/ui/screens/modals/confirm_delete_modal.py @@ -0,0 +1,32 @@ +from textual.app import ComposeResult +from textual.screen import Screen +from textual.widgets import Static, Button +from textual.containers import Container, Horizontal +from pilgrim.models.photo import Photo + +class ConfirmDeleteModal(Screen): + """Modal for confirming photo deletion""" + def __init__(self, photo: Photo): + super().__init__() + self.photo = photo + self.result = None + + def compose(self) -> ComposeResult: + yield Container( + Static("🗑️ Confirm Deletion", classes="ConfirmDeleteModal-Title"), + Static(f"Are you sure you want to delete the photo '{self.photo.name}'?", classes="ConfirmDeleteModal-Message"), + Static("This action cannot be undone.", classes="ConfirmDeleteModal-Warning"), + Horizontal( + Button("Delete", variant="error", id="delete-button", classes="ConfirmDeleteModal-Button"), + Button("Cancel", variant="default", id="cancel-button", classes="ConfirmDeleteModal-Button"), + classes="ConfirmDeleteModal-Buttons" + ), + classes="ConfirmDeleteModal-Dialog" + ) + + def on_button_pressed(self, event: Button.Pressed) -> None: + if event.button.id == "delete-button": + self.result = True + self.dismiss(True) + elif event.button.id == "cancel-button": + self.dismiss(False) \ No newline at end of file