diff --git a/Client/src/App.jsx b/Client/src/App.jsx
index b5b83e221..69ce98c4c 100644
--- a/Client/src/App.jsx
+++ b/Client/src/App.jsx
@@ -28,6 +28,9 @@ import CreatePageSpeed from "./Pages/PageSpeed/CreatePageSpeed";
import CreateNewMaintenanceWindow from "./Pages/Maintenance/CreateMaintenanceWindow";
import PageSpeedDetails from "./Pages/PageSpeed/Details";
import PageSpeedConfigure from "./Pages/PageSpeed/Configure";
+import { ThemeProvider } from "@emotion/react";
+import theme, { darkTheme } from "./Utils/Theme";
+import { useSelector } from "react-redux";
function App() {
const AdminCheckedRegister = withAdminCheck(Register);
@@ -35,8 +38,11 @@ function App() {
const DetailsWithAdminProp = withAdminProp(Details);
const PageSpeedWithAdminProp = withAdminProp(PageSpeed);
const MaintenanceWithAdminProp = withAdminProp(Maintenance);
+
+ const { mode } = useSelector((state) => state.ui);
+
return (
- <>
+
}>
- >
+
);
}
diff --git a/Client/src/Components/BasicTable/index.css b/Client/src/Components/BasicTable/index.css
index 4839c7dcb..c345abf7c 100644
--- a/Client/src/Components/BasicTable/index.css
+++ b/Client/src/Components/BasicTable/index.css
@@ -53,7 +53,6 @@
}
.MuiPaper-root + .MuiPagination-root {
- margin-top: 24px;
border-radius: var(--env-var-radius-1);
padding: var(--env-var-spacing-1-plus) var(--env-var-spacing-2);
}
diff --git a/Client/src/Components/BasicTable/index.jsx b/Client/src/Components/BasicTable/index.jsx
index 95abfc05f..9852d7987 100644
--- a/Client/src/Components/BasicTable/index.jsx
+++ b/Client/src/Components/BasicTable/index.jsx
@@ -203,6 +203,7 @@ const BasicTable = ({ data, paginated, reversed, table }) => {
{
key={col.id}
sx={{
color: theme.palette.text.secondary,
+ borderBottomColor: theme.palette.border.light,
}}
>
{col.name}
@@ -245,6 +247,7 @@ const BasicTable = ({ data, paginated, reversed, table }) => {
key={cell.id}
sx={{
color: theme.palette.text.secondary,
+ borderBottomColor: theme.palette.border.light,
}}
>
{cell.data}
@@ -299,6 +302,7 @@ const BasicTable = ({ data, paginated, reversed, table }) => {
borderColor: theme.palette.border.light,
borderRadius: theme.shape.borderRadius,
boxShadow: theme.shape.boxShadow,
+ backgroundColor: theme.palette.background.main,
"& li": {
p: theme.spacing(2),
color: theme.palette.text.tertiary,
@@ -329,7 +333,7 @@ const BasicTable = ({ data, paginated, reversed, table }) => {
sx={{
mt: theme.spacing(6),
color: theme.palette.text.secondary,
- "& button, & .MuiSelect-select": {
+ "& button.MuiButtonBase-root, & .MuiSelect-select": {
border: 1,
borderColor: theme.palette.border.light,
borderRadius: theme.shape.borderRadius,
diff --git a/Client/src/Components/Inputs/Checkbox/index.jsx b/Client/src/Components/Inputs/Checkbox/index.jsx
index c48c59bf5..e7af04a64 100644
--- a/Client/src/Components/Inputs/Checkbox/index.jsx
+++ b/Client/src/Components/Inputs/Checkbox/index.jsx
@@ -72,7 +72,7 @@ const Checkbox = ({
mr: theme.spacing(6),
},
"&:not(:has(.Mui-disabled)):hover": {
- backgroundColor: theme.palette.unresolved.bg,
+ backgroundColor: theme.palette.background.accent,
},
"& span.MuiTypography-root": {
fontSize: 13,
diff --git a/Client/src/Components/Inputs/Field/index.jsx b/Client/src/Components/Inputs/Field/index.jsx
index 3574377d8..293cbcdd3 100644
--- a/Client/src/Components/Inputs/Field/index.jsx
+++ b/Client/src/Components/Inputs/Field/index.jsx
@@ -141,7 +141,7 @@ const Field = forwardRef(
height="100%"
sx={{
borderRight: `solid 1px ${theme.palette.border.dark}`,
- backgroundColor: "#f9f9fa",
+ backgroundColor: theme.palette.background.accent,
pl: theme.spacing(6),
}}
>
diff --git a/Client/src/Components/Inputs/Radio/index.jsx b/Client/src/Components/Inputs/Radio/index.jsx
index c5595be83..1772912ac 100644
--- a/Client/src/Components/Inputs/Radio/index.jsx
+++ b/Client/src/Components/Inputs/Radio/index.jsx
@@ -41,7 +41,7 @@ const Radio = (props) => {
color: "transparent",
width: 16,
height: 16,
- boxShadow: "inset 0 0 0 1px rgb(16 22 26 / 40%)",
+ boxShadow: "inset 0 0 0 1px #656a74",
mt: theme.spacing(0.5),
}}
/>
@@ -50,7 +50,11 @@ const Radio = (props) => {
label={
<>
{props.title}
-
+
{props.desc}
>
@@ -62,7 +66,7 @@ const Radio = (props) => {
m: theme.spacing(-2.5),
borderRadius: theme.shape.borderRadius,
"&:hover": {
- backgroundColor: theme.palette.unresolved.bg,
+ backgroundColor: theme.palette.background.accent,
},
"& .MuiButtonBase-root": {
p: 0,
diff --git a/Client/src/Components/Inputs/Select/index.jsx b/Client/src/Components/Inputs/Select/index.jsx
index 5ae0492fe..9d5f065f4 100644
--- a/Client/src/Components/Inputs/Select/index.jsx
+++ b/Client/src/Components/Inputs/Select/index.jsx
@@ -85,6 +85,7 @@ const Select = ({
borderColor: theme.palette.border.light,
borderRadius: theme.shape.borderRadius,
boxShadow: theme.shape.boxShadow,
+ backgroundColor: theme.palette.background.main,
},
},
MenuListProps: {
@@ -114,6 +115,9 @@ const Select = ({
"&:not(.Mui-focused):hover fieldset": {
borderColor: theme.palette.border.dark,
},
+ "& svg path": {
+ fill: theme.palette.other.icon,
+ },
...sx,
}}
>
diff --git a/Client/src/Components/Sidebar/index.jsx b/Client/src/Components/Sidebar/index.jsx
index 71f7a2987..7dc3618a3 100644
--- a/Client/src/Components/Sidebar/index.jsx
+++ b/Client/src/Components/Sidebar/index.jsx
@@ -19,7 +19,7 @@ import { useLocation, useNavigate } from "react-router";
import { useTheme } from "@emotion/react";
import { useDispatch, useSelector } from "react-redux";
import { clearAuthState } from "../../Features/Auth/authSlice";
-import { toggleSidebar } from "../../Features/UI/uiSlice";
+import { setMode, toggleSidebar } from "../../Features/UI/uiSlice";
import { clearUptimeMonitorState } from "../../Features/UptimeMonitors/uptimeMonitorsSlice";
import Avatar from "../Avatar";
import LockSvg from "../../assets/icons/lock.svg?react";
@@ -40,6 +40,7 @@ import ArrowDown from "../../assets/icons/down-arrow.svg?react";
import ArrowUp from "../../assets/icons/up-arrow.svg?react";
import ArrowRight from "../../assets/icons/right-arrow.svg?react";
import ArrowLeft from "../../assets/icons/left-arrow.svg?react";
+import DotsVertical from "../../assets/icons/dots-vertical.svg?react";
import "./index.css";
@@ -309,6 +310,8 @@ function Sidebar() {
borderColor: theme.palette.border.light,
borderRadius: theme.shape.borderRadius,
boxShadow: theme.shape.boxShadow,
+ backgroundColor: theme.palette.background.main,
+ ml: theme.spacing(1),
},
},
}}
@@ -424,7 +427,7 @@ function Sidebar() {
left: "-7px",
height: "100%",
borderLeft: 1,
- borderLeftColor: "#d6d9dd",
+ borderLeftColor: theme.palette.other.line,
},
"&:last-child::before": {
height: "50%",
@@ -437,7 +440,7 @@ function Sidebar() {
height: "3px",
width: "3px",
borderRadius: "50%",
- backgroundColor: "#d6d9dd",
+ backgroundColor: theme.palette.other.line,
},
"&.selected-path::after": {
backgroundColor: theme.palette.text.tertiary,
@@ -560,71 +563,6 @@ function Sidebar() {
-
>
) : (
<>
@@ -637,16 +575,101 @@ function Sidebar() {
{authState.user?.role}
-
+
openPopup(event, "logout")}
>
-
+
>
)}
+
);
diff --git a/Client/src/Features/UI/uiSlice.js b/Client/src/Features/UI/uiSlice.js
index ebea20bf1..addc4e845 100644
--- a/Client/src/Features/UI/uiSlice.js
+++ b/Client/src/Features/UI/uiSlice.js
@@ -12,6 +12,7 @@ const initialState = {
sidebar: {
collapsed: false,
},
+ mode: "light",
};
const uiSlice = createSlice({
@@ -24,8 +25,11 @@ const uiSlice = createSlice({
toggleSidebar: (state) => {
state.sidebar.collapsed = !state.sidebar.collapsed;
},
+ setMode: (state, action) => {
+ state.mode = action.payload;
+ },
},
});
export default uiSlice.reducer;
-export const { setRowsPerPage, toggleSidebar } = uiSlice.actions;
+export const { setRowsPerPage, toggleSidebar, setMode } = uiSlice.actions;
diff --git a/Client/src/Layouts/HomeLayout/index.jsx b/Client/src/Layouts/HomeLayout/index.jsx
index 81cb2fd9c..92d763f0c 100644
--- a/Client/src/Layouts/HomeLayout/index.jsx
+++ b/Client/src/Layouts/HomeLayout/index.jsx
@@ -1,14 +1,19 @@
import Sidebar from "../../Components/Sidebar";
import { Outlet } from "react-router";
import { Box } from "@mui/material";
+import { useTheme } from "@emotion/react";
import "./index.css";
const HomeLayout = () => {
+ const theme = useTheme();
+
return (
-
-
-
+
+
+
+
+
);
};
diff --git a/Client/src/Pages/Incidents/IncidentTable/index.jsx b/Client/src/Pages/Incidents/IncidentTable/index.jsx
index 39a835ad4..c6132a26e 100644
--- a/Client/src/Pages/Incidents/IncidentTable/index.jsx
+++ b/Client/src/Pages/Incidents/IncidentTable/index.jsx
@@ -30,7 +30,7 @@ const IncidentTable = ({ monitors, selectedMonitor, filter }) => {
const [checksCount, setChecksCount] = useState(0);
const [paginationController, setPaginationController] = useState({
page: 0,
- rowsPerPage: 12,
+ rowsPerPage: 14,
});
useEffect(() => {
@@ -169,6 +169,10 @@ const IncidentTable = ({ monitors, selectedMonitor, filter }) => {
sx={{
border: `solid 1px ${theme.palette.border.light}`,
borderRadius: theme.shape.borderRadius,
+ backgroundColor: theme.palette.background.main,
+ "& .MuiTableCell-root": {
+ borderBottomColor: theme.palette.border.light,
+ },
}}
>
diff --git a/Client/src/Pages/Incidents/index.jsx b/Client/src/Pages/Incidents/index.jsx
index 510eeeaaf..75e8fb174 100644
--- a/Client/src/Pages/Incidents/index.jsx
+++ b/Client/src/Pages/Incidents/index.jsx
@@ -78,7 +78,11 @@ const Incidents = () => {
};
return (
-
+
{loading ? (
) : (
diff --git a/Client/src/Pages/Monitors/CreateMonitor/index.jsx b/Client/src/Pages/Monitors/CreateMonitor/index.jsx
index 3de96ad5c..bc0f55ed3 100644
--- a/Client/src/Pages/Monitors/CreateMonitor/index.jsx
+++ b/Client/src/Pages/Monitors/CreateMonitor/index.jsx
@@ -237,6 +237,10 @@ const CreateMonitor = () => {
onClick={() => setHttps(true)}
sx={{
backgroundColor: https && theme.palette.background.fill,
+ borderColor: theme.palette.border.dark,
+ "&:hover": {
+ borderColor: theme.palette.border.dark,
+ },
}}
/>