import { useEffect, useState, useCallback } from "react"; import api from "../lib/api"; import { toast } from "sonner"; import { RotateCw } from "lucide-react"; export default function ServiceStatus() { const [services, setServices] = useState([]); const [restarting, setRestarting] = useState(null); const load = useCallback(async () => { try { const { data } = await api.get("/services"); setServices(data); } catch { setServices([]); } }, []); useEffect(() => { load(); const t = setInterval(load, 15000); return () => clearInterval(t); }, [load]); const restart = async (key, label) => { setRestarting(key); try { await api.post(`/services/${key}/restart`); toast.success(`${label} restarting…`); setTimeout(load, 4000); } catch (err) { toast.error(err.response?.data?.detail || `Could not restart ${label}`); } finally { setRestarting(null); } }; if (!services.length) return null; return (