diff --git a/Client/src/Pages/Monitors/Details/index.css b/Client/src/Pages/Monitors/Details/index.css index 528ec1b92..8b1378917 100644 --- a/Client/src/Pages/Monitors/Details/index.css +++ b/Client/src/Pages/Monitors/Details/index.css @@ -1,4 +1 @@ -.monitor-details p.MuiTypography-root, -.monitor-details p.MuiTypography-root span.MuiTypography-root { - font-size: var(--env-var-font-size-small-plus); -} + diff --git a/Client/src/Pages/Monitors/Details/index.jsx b/Client/src/Pages/Monitors/Details/index.jsx index 20979d863..4c8eced23 100644 --- a/Client/src/Pages/Monitors/Details/index.jsx +++ b/Client/src/Pages/Monitors/Details/index.jsx @@ -27,58 +27,12 @@ import UptimeIcon from "../../../assets/icons/uptime-icon.svg?react"; import ResponseTimeIcon from "../../../assets/icons/response-time-icon.svg?react"; import AverageResponseIcon from "../../../assets/icons/average-response-icon.svg?react"; import IncidentsIcon from "../../../assets/icons/incidents.svg?react"; +import HistoryIcon from "../../../assets/icons/history-icon.svg?react"; import PaginationTable from "./PaginationTable"; import Breadcrumbs from "../../../Components/Breadcrumbs"; import PulseDot from "../../../Components/Animated/PulseDot"; import "./index.css"; -import { ChartBox, IconBox } from "./styled"; - -const StatBox = ({ title, value }) => { - const theme = useTheme(); - return ( - - - {title} - - - {value} - - - ); -}; - -StatBox.propTypes = { - title: PropTypes.oneOfType([PropTypes.string, PropTypes.element]), - value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), -}; +import { AlertBox, ChartBox, IconBox } from "./styled"; /** * Renders a skeleton layout. @@ -233,7 +187,7 @@ const DetailsPage = ({ isAdmin }) => { { name: "details", path: `/monitors/${monitorId}` }, ]} /> - + { { slotProps={{ paper: { sx: { - py: 4, - px: 6, + mt: theme.spacing(4), + py: theme.spacing(2), + px: theme.spacing(4), width: 140, backgroundColor: theme.palette.background.accent, }, @@ -376,14 +332,46 @@ const DetailsPage = ({ isAdmin }) => { )} + + + up for + + {formatDurationRounded(monitor?.uptimeDuration)} + + + + last check + + {formatDurationRounded(monitor?.lastChecked)} + ago + + + + last response time + + {monitor?.latestResponseTime} + ms + + + - + + Showing statistics for past{" "} + {dateRange === "day" + ? "24 hours" + : dateRange === "week" + ? "7 days" + : "30 days"} + . + + - - Showing statistics for past{" "} - {dateRange === "day" - ? "24 hours" - : dateRange === "week" - ? "7 days" - : "30 days"} - . - @@ -466,117 +445,38 @@ const DetailsPage = ({ isAdmin }) => { Response Times + + {/* */} + + + + + + + + + History + + + - - - - - - - Avg. Response Time{" "} - (24-hr) - - } - value={parseFloat(monitor?.avgResponseTime24hours) - .toFixed(2) - .replace(/\.?0+$/, "")} - /> - - Uptime (24-hr) - - } - value={`${parseFloat(monitor?.uptime24Hours) - .toFixed(2) - .replace(/\.?0+$/, "")}%`} - /> - - Uptime (30-day) - - } - value={`${parseFloat(monitor?.uptime30Days) - .toFixed(2) - .replace(/\.?0+$/, "")}%`} - /> - - - - - Response Times - - - - - - - - - {/* */} - - - - - History - - {/* */} - )} diff --git a/Client/src/Pages/Monitors/Details/styled.jsx b/Client/src/Pages/Monitors/Details/styled.jsx index a5bec8f39..479c82d0e 100644 --- a/Client/src/Pages/Monitors/Details/styled.jsx +++ b/Client/src/Pages/Monitors/Details/styled.jsx @@ -13,6 +13,7 @@ export const ChartBox = styled(Box)(({ theme }) => ({ "& h2": { color: theme.palette.text.secondary, fontSize: 15, + fontWeight: 500, }, "& p": { color: theme.palette.text.tertiary, @@ -59,3 +60,30 @@ export const IconBox = styled(Box)(({ theme }) => ({ }, }, })); + +export const AlertBox = styled(Box)(({ theme }) => ({ + padding: `${theme.spacing(4)} ${theme.spacing(8)}`, + minWidth: 200, + width: 225, + border: 1, + borderStyle: "solid", + borderColor: theme.palette.border.light, + borderRadius: 4, + backgroundColor: theme.palette.background.main, + "& h2": { + fontSize: 13, + fontWeight: 500, + color: theme.palette.text.secondary, + textTransform: "uppercase", + }, + "& p": { + fontSize: 18, + color: theme.palette.text.primary, + marginTop: theme.spacing(2), + "& span": { + opacity: 0.8, + marginLeft: theme.spacing(3), + fontSize: 15, + }, + }, +})); diff --git a/Client/src/assets/icons/history-icon.svg b/Client/src/assets/icons/history-icon.svg new file mode 100644 index 000000000..7343455ec --- /dev/null +++ b/Client/src/assets/icons/history-icon.svg @@ -0,0 +1,3 @@ + + +