import { Divider, IconButton, List, ListItem, ListItemButton, ListItemIcon, ListItemText, useMediaQuery, } from "@mui/material"; import Image from "next/image"; import React, { ReactNode } from "react"; import { tw } from "@/utils/tailwind"; import Collapse from "@mui/material/Collapse"; import Link from "next/link"; import ChevronLeftIcon from "@mui/icons-material/ChevronLeft"; import HomeIcon from "@mui/icons-material/Home"; import HubIcon from "@mui/icons-material/Hub"; import PersonIcon from "@mui/icons-material/Person"; import RouterIcon from "@mui/icons-material/Router"; import StorageIcon from "@mui/icons-material/Storage"; import ExpandLess from "@mui/icons-material/ExpandLess"; import ExpandMore from "@mui/icons-material/ExpandMore"; type MenuEntry = { icon: ReactNode; label: string; to: string; disabled: boolean; } & { subMenuEntries?: MenuEntry[]; }; const menuEntityEntries: MenuEntry[] = [ { icon: , label: "C1", to: "/client/C1", disabled: false, }, { icon: , label: "C2", to: "/client/C2", disabled: false, }, { icon: , label: "C3", to: "/client/C3", disabled: false, }, { icon: , label: "C4", to: "/client/C4", disabled: false, }, ]; const menuEntries: MenuEntry[] = [ { icon: , label: "Home", to: "/", disabled: false, }, { icon: , label: "Entities", to: "/entities", disabled: false, }, { icon: , label: "AP", to: "/access-point", disabled: false, }, { icon: , label: "DLG", to: "/distributed-ledger-gateway", disabled: false, }, ]; const hideSidebar = tw`-translate-x-14 lg:-translate-x-64`; const showSidebar = tw`lg:translate-x-0`; interface SidebarProps { show: boolean; onClose: () => void; } export function Sidebar(props: SidebarProps) { const { show, onClose } = props; const [activeMenuItem, setActiveMenuItem] = React.useState( typeof window !== "undefined" ? window.location.pathname : "", ); const [collapseMenuOpen, setCollapseMenuOpen] = React.useState(true); const isSmallerScreen = useMediaQuery("(max-width: 1025px)"); const handleMenuItemClick = (path: string) => { setActiveMenuItem(path); }; const handleCollapseClick = () => { setCollapseMenuOpen(!collapseMenuOpen); }; React.useEffect(() => { if (isSmallerScreen) { setCollapseMenuOpen(false); } else { setCollapseMenuOpen(true); } }, [isSmallerScreen]); return ( ); }