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

57 lines
2.2 KiB
Python

from textual.containers import Container
from textual.widgets import Header, Footer, Label, Button,Input
from textual.screen import Screen
from textual.binding import Binding
from textual import on
class DeleteYesConfirmationModal(Screen):
BINDINGS = [
Binding("escape", "cancel", "Cancel"),
]
def __init__(self,diary_id:int):
super().__init__()
self.diary_id = diary_id
self.user_input = Input(placeholder="Type 'Yes, I do ' to confirm",id="DeleteYesConfirmationModal-UserInput")
self.delete_button = Button("Delete",id="DeleteYesConfirmationModal-DeleteButton",disabled=True)
self.cancel_button = Button("Cancel",id="DeleteYesConfirmationModal-CancelButton")
self.head_text = Label("Are you sure you want to delete this diary?",id="DeleteYesConfirmationModal-HeadText")
self.second_head_text = Label("This action cannot be undone.",id="DeleteYesConfirmationModal-SecondHeadText")
self.delete_modal_container = Container(
self.head_text,
self.second_head_text,
self.user_input,
Container(
self.delete_button,
self.cancel_button,
id="DeleteYesConfirmationModal-DeleteButtonContainer",
classes="DeleteYesConfirmationModal-DeleteButtonContainer"
),
id="DeleteYesConfirmationModal-DeleteModalContainer",
classes="DeleteYesConfirmationModal-DeleteModalContainer"
)
self.result = None
@on(Input.Changed,"#DeleteYesConfirmationModal-UserInput")
def on_user_input_changed(self, event):
input_text = event.value.strip()
if input_text == "Yes, I do":
self.delete_button.disabled = False
else:
self.delete_button.disabled = True
@on(Button.Pressed,"#DeleteYesConfirmationModal-CancelButton")
def on_cancel_button_pressed(self, event):
self.action_cancel()
def action_cancel(self):
from pilgrim.ui.screens.diary_settings_screen import SettingsScreen
self.dismiss()
self.app.push_screen(SettingsScreen(self.diary_id))
def compose(self):
yield Header()
yield Footer()
yield self.delete_modal_container