Skip to content

WelcomeScreen

Welcome screen: start a new session or load a saved one.

WelcomeScreen

Bases: Screen

Landing screen shown on startup.

Source code in src/logos_tui/welcome.py
class WelcomeScreen(Screen):
    """Landing screen shown on startup."""

    CSS_PATH = "welcome.tcss"

    def compose(self) -> ComposeResult:
        with Center():
            with Middle():
                with Vertical(id="welcome-box"):
                    yield Static(
                        "[bold]LOGos[/bold]", id="logo-title"
                    )
                    yield Static(
                        "From Logs to Causal Diagnosis",
                        id="logo-subtitle",
                    )
                    with Center(id="btn-row"):
                        yield Button(
                            "New Session", id="btn_new", variant="primary"
                        )
                        yield Button(
                            "Load Session", id="btn_load", variant="default"
                        )
        with Horizontal(classes="exit-bar"):
            yield Button("💾 Save & Exit", id="btn_save_exit", variant="success", disabled=True)
            yield Button("✗ Exit", id="btn_exit_no_save", variant="error")

    def on_button_pressed(self, event: Button.Pressed) -> None:
        if event.button.id == "btn_new":
            self.app.push_screen(FileSelectScreen())
        elif event.button.id == "btn_load":
            self.app.action_load_session()