26 lines
824 B
Python
26 lines
824 B
Python
from textual import on
|
|
from textual.app import ComposeResult, Screen
|
|
from textual.widgets import Input, Label
|
|
from textual.containers import Horizontal
|
|
|
|
|
|
class CreateTaskScreen(Screen[str]):
|
|
def compose(self) -> ComposeResult:
|
|
yield Horizontal(
|
|
Label("$>", id="task_prompt"),
|
|
Label("task add ", id="task_prompt_label"),
|
|
Input(placeholder="arguments", id="task_input")
|
|
)
|
|
|
|
@on(Input.Submitted)
|
|
def handle_task_args(self) -> None:
|
|
input_widget = self.query_one("#task_input", Input)
|
|
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()
|