{#- chirp-ui: SSE connection status and error recovery Lightweight components for streaming resilience. Pair with streaming_bubble / streaming_block from chirpui/streaming.html. Usage: from "chirpui/sse_status.html" import sse_status, sse_retry Connection indicator (shows dot + label): sse_status("connected") sse_status("error", label="Connection lost") Retry button (re-fetches the SSE endpoint): sse_retry("/api/stream/123", label="Reconnect") Inside a streaming bubble on error: call streaming_bubble(role="assistant", streaming=false)
Connection lost.
sse_retry("/api/stream/123") end -#} {% def sse_status(state="connected", label="", cls="") %} {% set _state = state | validate_variant(("connected", "disconnected", "error"), "connected") %} {% set default_labels = {"connected": "Connected", "disconnected": "Disconnected", "error": "Connection error"} %} {% set _label = label if label else default_labels[_state] %} {{ _label }} {% end %} {% def sse_retry(url, label="Retry", method="get", target="closest [hx-ext]", swap="outerHTML", cls="") %} {# @consumes _sse_state from: (external provider) — falls back to "" #} {% set _parent_state = consume("_sse_state", "") %} {% end %}