import { Link, useSearchParams } from "react-router-dom"; import { useRuns } from "../api/hooks.js"; import { formatTime, StatusBadge } from "../lib/format.jsx"; export function EventsPage() { const [params, setParams] = useSearchParams(); const workflow = params.get("workflow") || ""; const status = params.get("status") || ""; const { data: runs = [], isLoading } = useRuns({ workflow: workflow || undefined, status: status || undefined, limit: 100, }); function update(key, value) { const next = new URLSearchParams(params); if (value) next.set(key, value); else next.delete(key); setParams(next); } return (

{status === "failed" ? "Failed events" : "Events"}

update("workflow", e.target.value)} />
{isLoading ? ( ) : (
{runs.map((r) => ( ))}
Status Workflow Trigger Started Duration
{r.workflow_name || r.workflow} {r.trigger_type} {r.trigger_detail ? ` · ${r.trigger_detail}` : ""} {formatTime(r.started_at)} {r.duration_ms != null ? `${r.duration_ms}ms` : "—"}
)}
); }