Files
luk/maildir_gtd/screens/CreateTask.py
2025-05-08 12:09:43 -06:00

44 lines
1.4 KiB
Python

from textual import on
from textual.app import ComposeResult
from textual.screen import ModalScreen
from textual.widgets import Input, Label, Button
from textual.containers import Horizontal, Vertical
class CreateTaskScreen(ModalScreen[str]):
def compose(self) -> ComposeResult:
yield Vertical(
Horizontal(
Label("$>", id="task_prompt"),
Label("task add ", id="task_prompt_label"),
Input(placeholder="arguments", id="task_input"),
),
Horizontal(
Button("Cancel", id="cancel"),
Button("Submit", id="submit", variant="primary"),
),
id="create_task_container",
classes="modal_screen",
)
@on(Input.Submitted)
def handle_task_args(self) -> None:
input_widget = self.query_one("#task_input", Input)
self.visible = False
self.disabled = True
self.loading = True
task_args = input_widget.value
self.dismiss(task_args)
def on_key(self, event) -> None:
if event.key == "escape" or event.key == "ctrl+c":
self.dismiss()
def button_on_click(self, event):
if event.button.id == "cancel":
self.dismiss()
elif event.button.id == "submit":
input_widget = self.query_one("#task_input", Input)
task_args = input_widget.value
self.dismiss(task_args)