diff --git a/Client/src/Pages/Monitors/Configure/index.css b/Client/src/Pages/Monitors/Configure/index.css index f4e77196a..b1808b237 100644 --- a/Client/src/Pages/Monitors/Configure/index.css +++ b/Client/src/Pages/Monitors/Configure/index.css @@ -8,10 +8,12 @@ font-weight: 600; } .configure-monitor h2.MuiTypography-root, -.configure-monitor .config-box p.MuiTypography-root { +.configure-monitor .config-box p.MuiTypography-root, +.configure-monitor .MuiSelect-select { color: var(--env-var-color-5); } -.configure-monitor p.MuiTypography-root { +.configure-monitor p.MuiTypography-root, +.configure-monitor .MuiSelect-select { font-size: var(--env-var-font-size-medium); } .configure-monitor h6.MuiTypography-root { @@ -40,4 +42,16 @@ .configure-monitor .config-box .MuiBox-root, .configure-monitor .config-box .MuiStack-root { flex: 1; -} \ No newline at end of file +} +.MuiInputBase-root:has(#monitor-interval) { + height: 34px; +} +#monitor-interval { + padding: 0 10px; + height: 100%; + display: flex; + align-items: center; +} +.MuiInputBase-root:not(.Mui-focused):has(#monitor-interval):hover fieldset { + border-color: var(--env-var-color-29); +} diff --git a/Client/src/Pages/Monitors/Configure/index.jsx b/Client/src/Pages/Monitors/Configure/index.jsx index e756d0173..0784399cc 100644 --- a/Client/src/Pages/Monitors/Configure/index.jsx +++ b/Client/src/Pages/Monitors/Configure/index.jsx @@ -4,15 +4,16 @@ import { useDispatch, useSelector } from "react-redux"; import { useEffect, useState } from "react"; import axiosInstance from "../../../Utils/axiosConfig"; import Button from "../../../Components/Button"; -import { Box, Stack, Typography } from "@mui/material"; +import Field from "../../../Components/Inputs/Field"; +import RadioButton from "../../../Components/RadioButton"; +import { Box, MenuItem, Select, Stack, Typography } from "@mui/material"; import WestRoundedIcon from "@mui/icons-material/WestRounded"; import GreenCheck from "../../../assets/icons/checkbox-green.svg?react"; import RedCheck from "../../../assets/icons/checkbox-red.svg?react"; import PauseCircleOutlineIcon from "@mui/icons-material/PauseCircleOutline"; +import KeyboardArrowDownIcon from "@mui/icons-material/KeyboardArrowDown"; import "./index.css"; -import Field from "../../../Components/Inputs/Field"; -import RadioButton from "../../../Components/RadioButton"; const formatDurationRounded = (ms) => { const seconds = Math.floor(ms / 1000); @@ -58,13 +59,15 @@ const getLastChecked = (checks) => { * @component */ const Configure = () => { + const MS_PER_MINUTE = 60000; const navigate = useNavigate(); const theme = useTheme(); const dispatch = useDispatch(); + const { authToken } = useSelector((state) => state.auth); + const { monitorId } = useParams(); const [monitor, setMonitor] = useState(); - const { monitorId } = useParams(); - const { authToken } = useSelector((state) => state.auth); + const [errors, setErrors] = useState({}); useEffect(() => { const fetchMonitor = async () => { const res = await axiosInstance.get(`/monitors/${monitorId}`, { @@ -72,11 +75,20 @@ const Configure = () => { Authorization: `Bearer ${authToken}`, }, }); - setMonitor(res.data.data); + let data = res.data.data; + setMonitor({ + name: data.name, + url: data.url.replace(/^https?:\/\//, ""), + type: data.type, + interval: data.interval / MS_PER_MINUTE, + status: data.status, + }); }; fetchMonitor(); }, [monitorId, authToken]); + const frequencies = [1, 2, 3, 4, 5]; + return (
{ }, }} /> - - - {monitor?.status ? : } - - - {monitor?.url.replace(/^https?:\/\//, "") || "..."} - - - + + + {monitor?.status ? : } + + + {monitor?.url.replace(/^https?:\/\//, "") || "..."} + + + + Your site is {monitor?.status ? "up" : "down"}. + {" "} + Checking every {formatDurationRounded(monitor?.interval)}. Last + time checked{" "} + {formatDurationRounded(getLastChecked(monitor?.checks))} ago. + + + +
); };