import { useEffect, useState } from "react"; type Status = "idle" | "ok" | "error" | "disabled"; export function useBackendHealth() { const [status, setStatus] = useState(() => { return "idle"; }); useEffect(() => { let destroyed = false; const controller = new AbortController(); const check = async () => { try { const response = await fetch("/api/backend/health", { signal: controller.signal }); const payload = (await response.json().catch(() => null)) as { status?: Status } | null; if (!destroyed) { setStatus(payload?.status ?? "error"); } } catch { if (!destroyed) { setStatus("error"); } } }; check(); return () => { destroyed = true; controller.abort(); }; }, []); return status; }