Files
Pilgrim/src/pilgrim/ui/screens/modals/confirm_delete_modal.py
T

32 lines
1.4 KiB
Python

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)