UI: Replaced enum infavor of hash keys
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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 (
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
Reference in New Issue
Block a user