diff --git a/Client/src/Components/BasicTable/index.jsx b/Client/src/Components/BasicTable/index.jsx
index a1c3afef2..bd716d793 100644
--- a/Client/src/Components/BasicTable/index.jsx
+++ b/Client/src/Components/BasicTable/index.jsx
@@ -77,9 +77,17 @@ const BasicTable = ({ data, paginated }) => {
setPage(0); // Reset to first page after changing rows per page
};
- let displayData = paginated
- ? data.rows.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)
- : data.rows;
+ let displayData = [];
+
+ if (data && data.rows) {
+ displayData = paginated
+ ? data.rows.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)
+ : data.rows;
+ }
+
+ if (!data || !data.cols || !data.rows) {
+ return
No data
;
+ }
return (
<>
diff --git a/Client/src/Pages/Details/index.jsx b/Client/src/Pages/Details/index.jsx
index c8cd6be7a..c53054ccd 100644
--- a/Client/src/Pages/Details/index.jsx
+++ b/Client/src/Pages/Details/index.jsx
@@ -3,6 +3,7 @@ import { Box, Typography, useTheme } from "@mui/material";
import { useSelector } from "react-redux";
import { useParams } from "react-router-dom";
import axiosInstance from "../../Utils/axiosConfig";
+import BasicTable from "../../Components/BasicTable";
/**
* Details page component displaying monitor details and related information.
@@ -10,6 +11,7 @@ import axiosInstance from "../../Utils/axiosConfig";
*/
const DetailsPage = () => {
const [monitor, setMonitor] = useState({});
+ const [data, setData] = useState({});
const { monitorId } = useParams();
const { authToken } = useSelector((state) => state.auth);
useEffect(() => {
@@ -20,6 +22,25 @@ const DetailsPage = () => {
},
});
setMonitor(res.data.data);
+ const data = {
+ cols: [
+ { id: 1, name: "Status" },
+ { id: 2, name: "Date & Time" },
+ { id: 3, name: "Message" },
+ ],
+ rows: res.data.data.checks.map((check, idx) => {
+ return {
+ id: check._id,
+ data: [
+ { id: idx, data: check.status ? "Up" : "Down" },
+ { id: idx + 1, data: new Date(check.createdAt).toLocaleString() },
+ { id: idx + 2, data: check.statusCode },
+ ],
+ };
+ }),
+ };
+
+ setData(data);
};
fetchMonitor();
}, [monitorId, authToken]);
@@ -85,54 +106,9 @@ const DetailsPage = () => {
};
return (
-
- {/* Customized Tables Component */}
-
-
- {/* Uptime duration */}
-
- Up for: {calculateUptimeDuration(monitor.checks)}
-
-
- {/* Last checked */}
-
- Last checked: {getLastCheckedTimestamp(monitor.checks)}
-
-
- {/* Incidents */}
-
- Incidents: {countIncidents(monitor.checks)}
-
-
+
+
+
);
};