// Components import Stack from "@mui/material/Stack"; import PulseDot from "../../Components/Animated/PulseDot"; import Typography from "@mui/material/Typography"; import Dot from "../../Components/Dot"; // Utils import { formatDurationRounded } from "../../Utils/timeUtils"; import PropTypes from "prop-types"; import { useTheme } from "@emotion/react"; import { useMonitorUtils } from "../../Hooks/useMonitorUtils"; /** * Status component displays the status information of a monitor. * It includes the monitor's name, URL, and check interval. * * @component * @param {Object} props - Component props * @param {Object} props.monitor - The monitor object containing details * @param {string} props.monitor.name - The name of the monitor * @param {string} props.monitor.url - The URL of the monitor * @param {number} props.monitor.interval - The interval at which the monitor checks * @returns {JSX.Element} The rendered component */ const Status = ({ monitor }) => { const theme = useTheme(); const { statusColor, determineState } = useMonitorUtils(); return ( {monitor?.name} {monitor?.url?.replace(/^https?:\/\//, "") || "..."} Checking every {formatDurationRounded(monitor?.interval)}. ); }; Status.propTypes = { monitor: PropTypes.object, }; export default Status;