import type { RunSummary } from "@/contracts"; import { Clock, GitBranch, GitCommitHorizontal } from "lucide-react"; import { Link } from "react-router-dom"; import { StatusPill } from "@/client/components/status-pill"; import { Badge } from "@/client/components/ui"; import { TRIGGER_TYPE_LABELS, formatDuration, formatRelativeTime } from "@/client/lib"; export const RunRow = ({ run }: { run: RunSummary }) => { const isTerminal = run.status === "passed" || run.status === "failed" || run.status === "canceled"; const commitDisplay = run.commitSha ? run.commitSha.slice(0, 7) : "\u2014"; return (
{run.branch} {commitDisplay} {TRIGGER_TYPE_LABELS[run.triggerType] ?? run.triggerType}
{formatRelativeTime(run.queuedAt)} {isTerminal && run.startedAt && run.finishedAt ? ( {formatDuration(run.startedAt, run.finishedAt)} ) : null}
); };