sync - tui loads but no data in views

This commit is contained in:
2025-09-26 08:33:02 -07:00
parent 6d0d8493aa
commit 5c0e05db16
27 changed files with 283 additions and 2797 deletions

View File

@@ -0,0 +1,34 @@
"""
Error modal component for TUI.
"""
from textual.app import ComposeResult
from textual.screen import ModalScreen
from textual.widgets import Button, Static
from textual.containers import Container, Vertical
from textual import on
class ErrorModal(ModalScreen):
"""Modal dialog for displaying errors with retry capability."""
def __init__(self, message: str, retry_action: callable = None):
super().__init__()
self.message = message
self.retry_action = retry_action
def compose(self) -> ComposeResult:
with Vertical(id="error-dialog"):
yield Static(f"⚠️ {self.message}", id="error-message")
with Container(id="error-buttons"):
if self.retry_action:
yield Button("Retry", variant="error", id="retry-btn")
yield Button("Dismiss", variant="primary", id="dismiss-btn")
@on(Button.Pressed, "#retry-btn")
def on_retry(self):
if self.retry_action:
self.dismiss()
self.retry_action()
@on(Button.Pressed, "#dismiss-btn")
def on_dismiss(self):
self.dismiss()

18
tui/widgets/loading.py Normal file
View File

@@ -0,0 +1,18 @@
"""
Loading spinner components for TUI.
"""
from textual.widgets import Static
from rich.spinner import Spinner
class LoadingSpinner(Static):
"""Animated loading spinner component."""
def __init__(self, text: str = "Loading...", spinner: str = "dots") -> None:
super().__init__()
self.spinner = Spinner(spinner, text=text)
def on_mount(self) -> None:
self.set_interval(0.1, self.update_spinner)
def update_spinner(self) -> None:
self.update(self.spinner)