import { createSignal, type JSX, Show } from "solid-js"; import { CONFIG } from "../config"; import { runTrigger, triggerStatus } from "../state"; import { GlassCard } from "./GlassCard"; const STATUS_TONE = { idle: "text-ink-400", pending: "text-ink-200", ok: "text-[#7fe5a3]", err: "text-[#ff8e85]", } as const; export function Trigger(): JSX.Element { const [issue, setIssue] = createSignal(""); const validate = (): string | null => { const value = issue().trim(); if (!value) return "enter owner/repo#NN or github issue url"; return null; }; const handleTriage = (): void => { const value = issue().trim(); if (!value) return; void runTrigger({ mode: "triage", issue: value }); }; const handleRetry = (): void => { const value = issue().trim(); if (!value) return; void runTrigger({ mode: "retry", issue: value }); }; return ( owner/repo#NN or issue url}> trigger disabled. set ROBOMP_REPLAY_TOKEN in the server env to enable manual triage and retry actions. } >
setIssue(ev.currentTarget.value)} onKeyDown={(ev) => { if (ev.key === "Enter") handleTriage(); }} class="flex-1 min-w-[220px] font-mono" />
{validate() ?? "ready"} } > {triggerStatus().text}
); }