"use client"; import { useCallback, useEffect, useState } from "react"; import { isBackendAvailable } from "@/lib/api/client"; export type BackendHealth = "checking" | "online" | "offline"; export function useBackendHealth(pollMs = 30_000) { const [health, setHealth] = useState("checking"); const check = useCallback(async () => { setHealth("checking"); const ok = await isBackendAvailable(); setHealth(ok ? "online" : "offline"); return ok; }, []); useEffect(() => { let cancelled = false; async function run() { const ok = await isBackendAvailable(); if (!cancelled) setHealth(ok ? "online" : "offline"); } void run(); const timer = setInterval(() => void run(), pollMs); return () => { cancelled = true; clearInterval(timer); }; }, [pollMs]); return { health, refresh: check }; }