import Stack from "@mui/material/Stack"; import Tooltip from "@mui/material/Tooltip"; import Typography from "@mui/material/Typography"; import { formatDateWithTz, formatMs } from "@/Utils/TimeUtils"; import type { CheckSnapshot } from "@/Types/Check"; import { useTheme } from "@mui/material/styles"; import { useSelector } from "react-redux"; import type { RootState } from "@/Types/state"; import { useTranslation } from "react-i18next"; type HeatmapCheck = | CheckSnapshot | { status: "placeholder"; responseTime: 0; createdAt: "" }; export const HeatmapResponseTimeTooltip = ({ children, check, }: { children: React.ReactElement; check: HeatmapCheck; }) => { const { t } = useTranslation(); const uiTimezone = useSelector((state: RootState) => state.ui.timezone); const theme = useTheme(); const getColor = (status: boolean) => { if (status === true) return theme.palette.success.light; if (status === false) return theme.palette.error.light; }; if (check.status === "placeholder") { return children; } return ( {formatDateWithTz(check?.createdAt, "ddd, MMMM D, YYYY, HH:mm A", uiTimezone)} {t("common.labels.responseTime")}:{" "} {check?.responseTime ? formatMs(check.responseTime) : "N/A"} Status:{" "} {check?.status === true ? t("pages.common.monitors.status.up") : t("pages.common.monitors.status.down")} } > {children} ); };