diff --git a/Client/src/Pages/StatusPage/Status/Components/StatusBar/index.jsx b/Client/src/Pages/StatusPage/Status/Components/StatusBar/index.jsx
index b17e688cf..ec457ddb1 100644
--- a/Client/src/Pages/StatusPage/Status/Components/StatusBar/index.jsx
+++ b/Client/src/Pages/StatusPage/Status/Components/StatusBar/index.jsx
@@ -1,11 +1,54 @@
// 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 StatusBar = ({ status }) => {
+
+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 (
{
gap={theme.spacing(2)}
height={theme.spacing(30)}
width={"100%"}
- backgroundColor={status?.color}
+ backgroundColor={monitorsStatus.color}
borderRadius={theme.spacing(2)}
>
- {status?.icon}
+ {monitorsStatus.icon}
{/* CAIO_REVIEW */}
- {status?.msg}
+ {monitorsStatus.msg}
);
};