// Components import { Stack, Typography } from "@mui/material"; import CheckCircleIcon from "@mui/icons-material/CheckCircle"; import ErrorOutlineIcon from "@mui/icons-material/ErrorOutline"; // Utils import { useTheme } from "@mui/material/styles"; import PropTypes from "prop-types"; const getMonitorStatus = (monitors, theme) => { const monitorsStatus = { icon: ( ), }; if (monitors.every((monitor) => monitor.status === true)) { monitorsStatus.msg = "All systems operational"; monitorsStatus.color = theme.palette.success.lowContrast; monitorsStatus.icon = ( ); } if (monitors.every((monitor) => monitor.status === false)) { monitorsStatus.msg = "All systems down"; monitorsStatus.color = theme.palette.error.lowContrast; } if (monitors.some((monitor) => monitor.status === false)) { monitorsStatus.msg = "Degraded performance"; monitorsStatus.color = theme.palette.warning.lowContrast; } // Paused or unknown if (monitors.some((monitor) => typeof monitor.status === "undefined")) { monitorsStatus.msg = "Unknown status"; monitorsStatus.color = theme.palette.warning.lowContrast; } return monitorsStatus; }; const StatusBar = ({ monitors }) => { const theme = useTheme(); if (typeof monitors === "undefined") return; const monitorsStatus = getMonitorStatus(monitors, theme); return ( {monitorsStatus.icon} {/* CAIO_REVIEW */} {monitorsStatus.msg} ); }; export default StatusBar; StatusBar.propTypes = { status: PropTypes.object, };