// ui/src/components/HealthBadge.tsx import React from "react"; import { Badge } from "@/components/ui/badge"; import type { HealthStatus } from "@/types/instance"; import { CheckCircle, Loader2, XCircle } from "lucide-react"; interface HealthBadgeProps { health?: HealthStatus; } const HealthBadge: React.FC = ({ health }) => { if (!health) { health = { status: "unknown", // Default to unknown if not provided lastChecked: new Date(), // Default to current date message: undefined, // No message by default }; } const getIcon = () => { switch (health.status) { case "ok": return ; case "loading": return ; case "error": return ; case "unknown": return ; case "failed": return ; } }; const getVariant = () => { switch (health.status) { case "ok": return "default"; case "loading": return "outline"; case "error": return "destructive"; case "unknown": return "secondary"; case "failed": return "destructive"; } }; const getText = () => { switch (health.status) { case "ok": return "Ready"; case "loading": return "Loading"; case "error": return "Error"; case "unknown": return "Unknown"; case "failed": return "Failed"; } }; return ( {getIcon()} {getText()} ); }; export default HealthBadge;