diff --git a/Client/src/App.jsx b/Client/src/App.jsx
index 26f75cef8..7dd1404a1 100644
--- a/Client/src/App.jsx
+++ b/Client/src/App.jsx
@@ -18,6 +18,7 @@ import CheckEmail from "./Pages/CheckEmail";
import SetNewPassword from "./Pages/SetNewPassword";
import NewPasswordConfirmed from "./Pages/NewPasswordConfirmed";
import ProtectedRoute from "./Components/ProtectedRoute";
+import Maintenance from "./Pages/Maintenance";
function App() {
return (
@@ -49,6 +50,10 @@ function App() {
path="integrations"
element={}
/>
+ }
+ />
}
diff --git a/Client/src/Components/DashboardMenu/index.jsx b/Client/src/Components/DashboardMenu/index.jsx
index 2363352c1..a88274c5d 100644
--- a/Client/src/Components/DashboardMenu/index.jsx
+++ b/Client/src/Components/DashboardMenu/index.jsx
@@ -5,6 +5,7 @@ import Monitors from "../../assets/Images/Icon-monitor-gray.png";
import Incidents from "../../assets/Images/Icon-warning-gray.png";
import SensorsIcon from "../../assets/Images/Icon-signal-gray.png";
import AllInclusiveIcon from "../../assets/Images/Icon-link-gray.png";
+import MaintenanceIcon from "../../assets/Images/Icon-maintenance-gray.png";
import SettingsIcon from "../../assets/Images/Icon-setting-gray.png";
import React, { useState, useEffect } from "react";
import { useNavigate, useLocation } from "react-router-dom";
@@ -62,6 +63,13 @@ function DashboardMenu() {
activeButton === "/integrations",
() => handleClick(pathMap["/integrations"], "/integrations")
)}
+ {DashboardMenuButton(
+ MaintenanceIcon,
+ "Maintenance",
+ "/maintenance",
+ activeButton === "/maintenance",
+ () => handleClick(pathMap["/maintenance"], "/maintenance")
+ )}
{DashboardMenuButton(
SettingsIcon,
"Settings",
diff --git a/Client/src/Pages/Maintenance/index.css b/Client/src/Pages/Maintenance/index.css
new file mode 100644
index 000000000..f26a48767
--- /dev/null
+++ b/Client/src/Pages/Maintenance/index.css
@@ -0,0 +1,36 @@
+.maintenance-checklist-main {
+ max-width: 350px;
+ min-height: 390px;
+ margin: auto;
+ padding: 5px;
+}
+
+.maintenance-image {
+ width: 280px;
+ height: 150px;
+ background-color: whitesmoke;
+ border-radius: 10px;
+}
+
+.maintenance-title {
+ color: var(--env-var-color-2);
+ font-size: 16px;
+ font-weight: bold;
+ margin-top: 40px;
+ margin-bottom: 30px;
+}
+
+.checklist-item {
+ font-size: 13px;
+ color: var(--env-var-color-2);
+ display: flex;
+ margin-bottom: 10px;
+}
+
+.checklist-item-text {
+ margin-left: 10px;
+}
+
+.maintenance-checklist-main .maintenance-checklist-button {
+ margin-top: 30px;
+}
diff --git a/Client/src/Pages/Maintenance/index.jsx b/Client/src/Pages/Maintenance/index.jsx
new file mode 100644
index 000000000..4cf77b025
--- /dev/null
+++ b/Client/src/Pages/Maintenance/index.jsx
@@ -0,0 +1,39 @@
+import React from "react";
+import "./index.css";
+import WindowFrame from "./../../assets/Images/maintenance_window_frame.svg";
+import { Button } from "@mui/material";
+import CheckCircleOutlineIcon from "@mui/icons-material/CheckCircleOutline";
+
+const Maintenance = () => {
+ const maintenanceItems = [
+ { id: 1, text: "Mark your maintenance periods" },
+ { id: 2, text: "Eliminate any misunderstandings" },
+ { id: 3, text: "Stop sending alerts in maintenance windows" },
+ ];
+
+ return (
+
+

+
Create a maintenance window to
+
+ {maintenanceItems.map((item) => (
+
+ ))}
+
+
+
+
+ );
+};
+
+export default Maintenance;
diff --git a/Client/src/Pages/Status/index.jsx b/Client/src/Pages/Status/index.jsx
index 33729f7e1..f0cf82b60 100644
--- a/Client/src/Pages/Status/index.jsx
+++ b/Client/src/Pages/Status/index.jsx
@@ -1,9 +1,7 @@
-import React from 'react'
+import React from "react";
const Status = () => {
- return (
- Status
- )
-}
+ return Status
;
+};
-export default Status
\ No newline at end of file
+export default Status;
diff --git a/Client/src/Utils/PathMap.js b/Client/src/Utils/PathMap.js
index 2a86c17f7..a14aafe63 100644
--- a/Client/src/Utils/PathMap.js
+++ b/Client/src/Utils/PathMap.js
@@ -1,9 +1,10 @@
const pathMap = {
- "/monitors": "Monitors",
- "/incidents": "Incidents",
- "/status" : "Status Pages",
- "/integrations": "Integrations",
- "/settings" : "Settings"
-}
+ "/monitors": "Monitors",
+ "/incidents": "Incidents",
+ "/status": "Status Pages",
+ "/integrations": "Integrations",
+ "/maintenance": "maintenance",
+ "/settings": "Settings",
+};
-export default pathMap;
\ No newline at end of file
+export default pathMap;
diff --git a/Client/src/assets/Images/Icon-maintenance-gray.png b/Client/src/assets/Images/Icon-maintenance-gray.png
new file mode 100644
index 000000000..c2c203d76
Binary files /dev/null and b/Client/src/assets/Images/Icon-maintenance-gray.png differ
diff --git a/Client/src/assets/Images/maintenance_window_frame.svg b/Client/src/assets/Images/maintenance_window_frame.svg
new file mode 100644
index 000000000..51fd317fe
--- /dev/null
+++ b/Client/src/assets/Images/maintenance_window_frame.svg
@@ -0,0 +1,9 @@
+