DocDoeAI / src /hooks /useBackendHealth.ts
asnannp's picture
deploy: sync backend to Space root (learn-lesson HF cache fix)
65d68f5
Raw History Blame Contribute Delete
887 Bytes
"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<BackendHealth>("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 };
}