diff --git a/Client/src/Components/HOC/withAdminProp.jsx b/Client/src/Components/HOC/withAdminProp.jsx
deleted file mode 100644
index b55893119..000000000
--- a/Client/src/Components/HOC/withAdminProp.jsx
+++ /dev/null
@@ -1,25 +0,0 @@
-import { useSelector } from "react-redux";
-
-const withAdminProp = (WrappedComponent) => {
- const WithAdminProp = (props) => {
- const { user } = useSelector((state) => state.auth);
- const isAdmin =
- (user?.role?.includes("admin") ?? false) ||
- (user?.role?.includes("superadmin") ?? false);
-
- return (
-
- );
- };
-
- const wrappedComponentName =
- WrappedComponent.displayName || WrappedComponent.name || "Component";
- WithAdminProp.displayName = `WithAdminProp(${wrappedComponentName})`;
-
- return WithAdminProp;
-};
-
-export default withAdminProp;
diff --git a/Client/src/Components/ProtectedRoute/index.jsx b/Client/src/Components/ProtectedRoute/index.jsx
index c10ebba7f..1a8cf9aa0 100644
--- a/Client/src/Components/ProtectedRoute/index.jsx
+++ b/Client/src/Components/ProtectedRoute/index.jsx
@@ -15,7 +15,6 @@ import PropTypes from "prop-types";
const ProtectedRoute = ({ Component, ...rest }) => {
const authState = useSelector((state) => state.auth);
- console.log("Protected");
return authState.authToken ? (
) : (
diff --git a/Client/src/Pages/AdvancedSettings/index.jsx b/Client/src/Pages/AdvancedSettings/index.jsx
index 90bcf21d6..14ecb6f8f 100644
--- a/Client/src/Pages/AdvancedSettings/index.jsx
+++ b/Client/src/Pages/AdvancedSettings/index.jsx
@@ -14,10 +14,11 @@ import { useState, useEffect } from "react";
import Select from "../../Components/Inputs/Select";
import { advancedSettingsValidation } from "../../Validation/validation";
import { buildErrors, hasValidationErrors } from "../../Validation/error";
+import { useIsAdmin } from "../../Hooks/useIsAdmin";
-const AdvancedSettings = ({ isAdmin }) => {
+const AdvancedSettings = () => {
const navigate = useNavigate();
-
+ const isAdmin = useIsAdmin;
useEffect(() => {
if (!isAdmin) {
navigate("/");
diff --git a/Client/src/Pages/Maintenance/index.jsx b/Client/src/Pages/Maintenance/index.jsx
index fd0d7edc3..5c2930294 100644
--- a/Client/src/Pages/Maintenance/index.jsx
+++ b/Client/src/Pages/Maintenance/index.jsx
@@ -8,13 +8,14 @@ import { useSelector } from "react-redux";
import { networkService } from "../../main";
import Breadcrumbs from "../../Components/Breadcrumbs";
import { useNavigate } from "react-router-dom";
+import { useIsAdmin } from "../../Hooks/useIsAdmin";
-const Maintenance = ({ isAdmin }) => {
+const Maintenance = () => {
const theme = useTheme();
const navigate = useNavigate();
const { authToken } = useSelector((state) => state.auth);
const { rowsPerPage } = useSelector((state) => state.ui.maintenance);
-
+ const isAdmin = useIsAdmin();
const [maintenanceWindows, setMaintenanceWindows] = useState([]);
const [maintenanceWindowCount, setMaintenanceWindowCount] = useState(0);
const [page, setPage] = useState(0);
@@ -99,7 +100,7 @@ const Maintenance = ({ isAdmin }) => {
"Stop sending alerts in maintenance windows",
]}
link="/maintenance/create"
- isAdmin={true}
+ isAdmin={isAdmin}
/>
)}
diff --git a/Client/src/Pages/Monitors/Details/index.jsx b/Client/src/Pages/Monitors/Details/index.jsx
index ebb664b79..68d21903c 100644
--- a/Client/src/Pages/Monitors/Details/index.jsx
+++ b/Client/src/Pages/Monitors/Details/index.jsx
@@ -32,14 +32,16 @@ import SkeletonLayout from "./skeleton";
import "./index.css";
import useUtils from "../utils";
import { formatDateWithTz } from "../../../Utils/timeUtils";
+import { useIsAdmin } from "../../../Hooks/useIsAdmin";
/**
* Details page component displaying monitor details and related information.
* @component
*/
-const DetailsPage = ({ isAdmin }) => {
+const DetailsPage = () => {
const theme = useTheme();
const { statusColor, statusStyles, statusMsg, determineState } = useUtils();
+ const isAdmin = useIsAdmin();
const [monitor, setMonitor] = useState({});
const { monitorId } = useParams();
const { authToken } = useSelector((state) => state.auth);
diff --git a/Client/src/Pages/Monitors/Home/index.jsx b/Client/src/Pages/Monitors/Home/index.jsx
index 167fd1e67..15dc814df 100644
--- a/Client/src/Pages/Monitors/Home/index.jsx
+++ b/Client/src/Pages/Monitors/Home/index.jsx
@@ -12,10 +12,12 @@ import StatusBox from "./StatusBox";
import Breadcrumbs from "../../../Components/Breadcrumbs";
import Greeting from "../../../Utils/greeting";
import { CurrentMonitoring } from "./CurrentMonitoring";
+import { useIsAdmin } from "../../../Hooks/useIsAdmin";
-const Monitors = ({ isAdmin }) => {
+const Monitors = () => {
const theme = useTheme();
const navigate = useNavigate();
+ const isAdmin = useIsAdmin();
const monitorState = useSelector((state) => state.uptimeMonitors);
const authState = useSelector((state) => state.auth);
const dispatch = useDispatch({});
diff --git a/Client/src/Pages/PageSpeed/Details/index.jsx b/Client/src/Pages/PageSpeed/Details/index.jsx
index ca852e124..d25848ff2 100644
--- a/Client/src/Pages/PageSpeed/Details/index.jsx
+++ b/Client/src/Pages/PageSpeed/Details/index.jsx
@@ -21,10 +21,12 @@ import Checkbox from "../../../Components/Inputs/Checkbox";
import PieChart from "./Charts/PieChart";
import useUtils from "../../Monitors/utils";
import "./index.css";
+import { useIsAdmin } from "../../../Hooks/useIsAdmin";
-const PageSpeedDetails = ({ isAdmin }) => {
+const PageSpeedDetails = () => {
const theme = useTheme();
const navigate = useNavigate();
+ const isAdmin = useIsAdmin();
const { statusColor, pagespeedStatusMsg, determineState } = useUtils();
const [monitor, setMonitor] = useState({});
const [audits, setAudits] = useState({});
diff --git a/Client/src/Pages/PageSpeed/index.jsx b/Client/src/Pages/PageSpeed/index.jsx
index 9b84b0286..b18148aa8 100644
--- a/Client/src/Pages/PageSpeed/index.jsx
+++ b/Client/src/Pages/PageSpeed/index.jsx
@@ -12,11 +12,12 @@ import SkeletonLayout from "./skeleton";
import Card from "./card";
import { networkService } from "../../main";
import { Heading } from "../../Components/Heading";
-const PageSpeed = ({ isAdmin }) => {
+import { useIsAdmin } from "../../Hooks/useIsAdmin";
+const PageSpeed = () => {
const theme = useTheme();
const dispatch = useDispatch();
const navigate = useNavigate();
-
+ const isAdmin = useIsAdmin();
const { user, authToken } = useSelector((state) => state.auth);
const [isLoading, setIsLoading] = useState(true);
const [monitors, setMonitors] = useState([]);
diff --git a/Client/src/Pages/Settings/index.jsx b/Client/src/Pages/Settings/index.jsx
index 8a5e73bc3..aab9fa537 100644
--- a/Client/src/Pages/Settings/index.jsx
+++ b/Client/src/Pages/Settings/index.jsx
@@ -23,11 +23,13 @@ import { networkService } from "../../main";
import { settingsValidation } from "../../Validation/validation";
import { useNavigate } from "react-router";
import Dialog from "../../Components/Dialog";
+import { useIsAdmin } from "../../Hooks/useIsAdmin";
const SECONDS_PER_DAY = 86400;
-const Settings = ({ isAdmin }) => {
+const Settings = () => {
const theme = useTheme();
+ const isAdmin = useIsAdmin();
const { user, authToken } = useSelector((state) => state.auth);
const { checkTTL } = user;
const { isLoading } = useSelector((state) => state.uptimeMonitors);
diff --git a/Client/src/Routes/index.jsx b/Client/src/Routes/index.jsx
index 76c90784e..d3e14a02d 100644
--- a/Client/src/Routes/index.jsx
+++ b/Client/src/Routes/index.jsx
@@ -28,18 +28,9 @@ import CreateNewMaintenanceWindow from "../Pages/Maintenance/CreateMaintenance";
import PageSpeedDetails from "../Pages/PageSpeed/Details";
import PageSpeedConfigure from "../Pages/PageSpeed/Configure";
import withAdminCheck from "../Components/HOC/withAdminCheck";
-import withAdminProp from "../Components/HOC/withAdminProp";
const Routes = () => {
const AdminCheckedRegister = withAdminCheck(Register);
- const MonitorsWithAdminProp = withAdminProp(Monitors);
- const MonitorDetailsWithAdminProp = withAdminProp(Details);
- const PageSpeedWithAdminProp = withAdminProp(PageSpeed);
- const PageSpeedDetailsWithAdminProp = withAdminProp(PageSpeedDetails);
- const MaintenanceWithAdminProp = withAdminProp(Maintenance);
- const SettingsWithAdminProp = withAdminProp(Settings);
- const AdvancedSettingsWithAdminProp = withAdminProp(AdvancedSettings);
- const InfrastructureDetailsWithAdminProp = withAdminProp(InfrastructureDetails);
return (
{
/>
}
+ element={}
/>
{
/>
}
+ element={ }
/>
{
/>
}
+ element={}
/>
{
/>
}
+ element={}
/>
{
/>
}
+ element={}
/>
-
}
@@ -110,7 +100,7 @@ const Routes = () => {
/>
}
+ element={}
/>
{
/>
}
+ element={}
/>
}
+ element={}
/>
{
/>
- }
+ element={}
/>
- }
+ element={}
/>
@@ -190,13 +170,3 @@ const Routes = () => {
};
export { Routes };
-
-/* import { createBrowserRouter } from "react-router-dom";
-
-const router = createBrowserRouter({
- {
- path: "/",
- }
-});
-
-export { router }; */