import { Badge, Card, Spin, Tag } from "antd"; import { useClusterHealth } from "interactive-elastic-react"; import { ClusterHealthStatus } from "interactive-elastic-core"; import { CheckCircleOutlined, CloseCircleOutlined, ExclamationCircleOutlined, MinusCircleOutlined, SyncOutlined, } from "@ant-design/icons"; import { ReactNode } from "react"; const colors: Record = { green: "#06d6a0", yellow: "#ffb703", red: "#ed1c24", loading: "#323639", }; const icons: Record = { green: , yellow: , red: , error: , }; const selectIcon = (status?: ClusterHealthStatus) => status ? icons[status] : ; const selectColor = (status?: ClusterHealthStatus) => status ? colors[status] : "#323639"; export default function ClusterHealth() { const { data, isError, failureCount, isLoading } = useClusterHealth(); const color = isLoading ? colors.loading : selectColor(data?.status); const icon = isError ? icons.error : selectIcon(data?.status); return ( {failureCount > 0 && ({failureCount}) } {isError ? "Could not connect" : data?.status ?? "loading.."} ); }