diff --git a/Client/src/Components/MonitorTable/index.css b/Client/src/Components/MonitorTable/index.css index 360526fc4..4339f261b 100644 --- a/Client/src/Components/MonitorTable/index.css +++ b/Client/src/Components/MonitorTable/index.css @@ -27,29 +27,6 @@ white-space: nowrap; } -.host-status { - width: fit-content; -} - -.host-status-details { - display: flex; - align-items: center; - border: 1px solid var(--env-var-color-4); - border-radius: var(--env-var-radius-2); - padding: calc(var(--env-var-spacing-1) / 2); -} - -.host-status-text { - font-size: var(--env-var-font-size-medium); - line-height: var(--env-var-font-size-medium); -} -.host-status-dot { - width: 6px; - height: 6px; - border-radius: 50%; - margin-right: calc(var(--env-var-spacing-1) / 2); -} - .monitors .MuiPaper-root:has(table.MuiTable-root) { box-shadow: none; border: solid 1px var(--env-var-color-16); diff --git a/Client/src/Components/MonitorTable/index.jsx b/Client/src/Components/MonitorTable/index.jsx index 35b7a0fca..57bfd125c 100644 --- a/Client/src/Components/MonitorTable/index.jsx +++ b/Client/src/Components/MonitorTable/index.jsx @@ -4,6 +4,7 @@ import ResponseTimeChart from "../Charts/ResponseTimeChart"; import BasicTable from "../BasicTable"; import OpenInNewPage from "../../assets/icons/open-in-new-page.svg?react"; import { useNavigate } from "react-router-dom"; +import StatusLabel from "../StatusLabel"; /** * Host component. @@ -34,39 +35,6 @@ const Host = ({ params }) => { ); }; -/** - * Status component. - * This subcomponent receives a params object and displays the status details of a monitor. - * - * @component - * @param {Object} params - An object containing the following properties: - * @param {string} params.backgroundColor - The background color of the status box. - * @param {string} params.statusDotColor - The color of the status dot. - * @param {string} params.status - The status text to display. - * @returns {React.ElementType} Returns a div element with the host status. - */ -const Status = ({ params }) => { - return ( -
-
-
- - {params.status} - -
-
- ); -}; - /** * MonitorTable component. * Takes an array of monitor objects and displays them in a table. @@ -118,7 +86,7 @@ const MonitorTable = ({ monitors = [] }) => { handleClick: () => navigate(`/monitors/${monitor._id}`), data: [ { id: idx, data: }, - { id: idx + 1, data: }, + { id: idx + 1, data: }, { id: idx + 2, data: }, { id: idx + 3, data: "TODO" }, ], @@ -132,7 +100,6 @@ MonitorTable.propTypes = { monitors: PropTypes.arrayOf(PropTypes.object).isRequired, }; -Status.propTypes = { params: PropTypes.object.isRequired }; Host.propTypes = { params: PropTypes.object.isRequired }; export default MonitorTable; diff --git a/Client/src/Components/StatusLabel/index.css b/Client/src/Components/StatusLabel/index.css new file mode 100644 index 000000000..3dcb3e004 --- /dev/null +++ b/Client/src/Components/StatusLabel/index.css @@ -0,0 +1,22 @@ +.host-status { + width: fit-content; +} + +.host-status-details { + display: flex; + align-items: center; + border: 1px solid var(--env-var-color-4); + border-radius: var(--env-var-radius-2); + padding: calc(var(--env-var-spacing-1) / 2); +} + +.host-status-text { + font-size: var(--env-var-font-size-medium); + line-height: var(--env-var-font-size-medium); +} +.host-status-dot { + width: 6px; + height: 6px; + border-radius: 50%; + margin-right: calc(var(--env-var-spacing-1) / 2); +} diff --git a/Client/src/Components/StatusLabel/index.jsx b/Client/src/Components/StatusLabel/index.jsx new file mode 100644 index 000000000..36e405b53 --- /dev/null +++ b/Client/src/Components/StatusLabel/index.jsx @@ -0,0 +1,39 @@ +import "./index.css"; +import PropTypes from "prop-types"; + +/** + * Status component. + * This subcomponent receives a params object and displays the status details of a monitor. + * + * @component + * @param {Object} params - An object containing the following properties: + * @param {string} params.backgroundColor - The background color of the status box. + * @param {string} params.statusDotColor - The color of the status dot. + * @param {string} params.status - The status text to display. + * @returns {React.ElementType} Returns a div element with the host status. + */ +const StatusLabel = ({ params }) => { + return ( +
+
+
+ + {params.status} + +
+
+ ); +}; + +export default StatusLabel; + +StatusLabel.propTypes = { params: PropTypes.object.isRequired };