import { useTranslation } from "react-i18next"; import useSWR from "swr"; export default function Ping({ group, service, style }) { const { t } = useTranslation(); const { data, error } = useSWR(`/api/ping?${new URLSearchParams({ group, service }).toString()}`, { refreshInterval: 30000 }); if (error) { return (
{t("ping.error")}
); } if (!data) { return (
{t("ping.ping")}
); } let statusText = `HTTP status ${data.status}`; let status; if (data.status > 403) { if (style === "basic") { status = t("docker.offline") } else if (style === "dot") { status = "◉" } else { status = data.status } return (
{status}
); } // Sucessful ping const ping = t("common.ms", { value: data.latency, style: "unit", unit: "millisecond", maximumFractionDigits: 0 }) statusText += ` (${ping})`; if (style === "basic") { status = t("docker.running") } else if (style === "dot") { status = "◉" } else { status = ping } return (
{status}
); }