UI: Replaced enum infavor of hash keys

This commit is contained in:
Luis-Hebendanz
2023-08-14 19:08:15 +02:00
parent 3489ebc5c4
commit c020cce56b
3 changed files with 24 additions and 8 deletions

View File

@@ -8,6 +8,7 @@ import {
IconButton, IconButton,
ThemeProvider, ThemeProvider,
useMediaQuery, useMediaQuery,
useTheme,
} from "@mui/material"; } from "@mui/material";
import { ChangeEvent, useState } from "react"; import { ChangeEvent, useState } from "react";
@@ -38,8 +39,21 @@ export default function RootLayout({
children: React.ReactNode; children: React.ReactNode;
}) { }) {
const userPrefersDarkmode = useMediaQuery("(prefers-color-scheme: dark)"); const userPrefersDarkmode = useMediaQuery("(prefers-color-scheme: dark)");
const theme = useTheme();
const is_small = useMediaQuery(theme.breakpoints.down("sm"));
let [useDarkTheme, setUseDarkTheme] = useState(false); let [useDarkTheme, setUseDarkTheme] = useState(false);
let [showSidebar, setShowSidebar] = useState(true); let [showSidebar, setShowSidebar] = useState(true);
// If the screen is small, hide the sidebar
React.useEffect(() => {
if (is_small) {
setShowSidebar(false);
} else {
setShowSidebar(true);
}
}, [is_small]);
React.useEffect(() => { React.useEffect(() => {
if (useDarkTheme !== userPrefersDarkmode) { if (useDarkTheme !== userPrefersDarkmode) {
// Enable dark theme if the user prefers dark mode // Enable dark theme if the user prefers dark mode

View File

@@ -41,7 +41,7 @@ import {
} from "@mui/material"; } from "@mui/material";
import hexRgb from "hex-rgb"; import hexRgb from "hex-rgb";
import useMediaQuery from "@mui/material/useMediaQuery"; import useMediaQuery from "@mui/material/useMediaQuery";
import { NodeStatus, TableData } from "@/data/nodeData"; import { NodeStatus, NodeStatusKeys, TableData } from "@/data/nodeData";
interface HeadCell { interface HeadCell {
disablePadding: boolean; disablePadding: boolean;
@@ -379,7 +379,7 @@ function Row(props: {
selected: string | undefined; selected: string | undefined;
setSelected: (a: string | undefined) => void; setSelected: (a: string | undefined) => void;
}) { }) {
function renderStatus(status: NodeStatus) { function renderStatus(status: NodeStatusKeys) {
switch (status) { switch (status) {
case NodeStatus.Online: case NodeStatus.Online:
return ( return (

View File

@@ -1,20 +1,22 @@
export interface TableData { export interface TableData {
name: string; name: string;
id: string; id: string;
status: NodeStatus; status: NodeStatusKeys;
last_seen: number; last_seen: number;
} }
export enum NodeStatus { export const NodeStatus = {
Online, Online: "Online",
Offline, Offline: "Offline",
Pending, Pending: "Pending",
} }
export type NodeStatusKeys = typeof NodeStatus[keyof typeof NodeStatus];
function createData( function createData(
name: string, name: string,
id: string, id: string,
status: NodeStatus, status: NodeStatusKeys,
last_seen: number, last_seen: number,
): TableData { ): TableData {
return { return {