// Components import { Stack, Typography } from "@mui/material"; import StatusBoxes from "../../../../../Components/StatusBoxes"; import StatBox from "../../../../../Components/StatBox"; //Utils import useUtils from "../../../../../Pages/Uptime/Monitors/Hooks/useUtils"; import { useHardwareUtils } from "../../Hooks/useHardwareUtils"; import { useTranslation } from "react-i18next"; const InfraStatBoxes = ({ shouldRender, monitor }) => { // Utils const { formatBytes } = useHardwareUtils(); const { determineState } = useUtils(); const { t } = useTranslation(); const { stats, uptimePercentage } = monitor ?? {}; const latestCheck = stats?.aggregateData?.latestCheck; // Get data from latest check const physicalCores = latestCheck?.cpu?.physical_core ?? 0; const logicalCores = latestCheck?.cpu?.logical_core ?? 0; const cpuFrequency = latestCheck?.cpu?.frequency ?? 0; const cpuTemperature = latestCheck?.cpu?.temperature?.length > 0 ? latestCheck.cpu.temperature.reduce((acc, curr) => acc + curr, 0) / latestCheck.cpu.temperature.length : 0; const memoryTotalBytes = latestCheck?.memory?.total_bytes ?? 0; const diskTotalBytes = latestCheck?.disk[0]?.total_bytes ?? 0; const os = latestCheck?.host?.os ?? undefined; const platform = latestCheck?.host?.platform ?? undefined; const osPlatform = typeof os === "undefined" && typeof platform === "undefined" ? undefined : `${os} ${platform}`; return ( {physicalCores} {physicalCores === 1 ? "core" : "cores"} } /> {logicalCores} {logicalCores === 1 ? "core" : "cores"} } /> {(cpuFrequency / 1000).toFixed(2)} Ghz } /> {cpuTemperature.toFixed(2)} °C } /> {(uptimePercentage * 100).toFixed(2)} % } /> ); }; export default InfraStatBoxes;