diff --git a/apps/link/app/(main)/_components/InternalLayout.tsx b/apps/link/app/(main)/_components/InternalLayout.tsx index e80b52a..36062cd 100644 --- a/apps/link/app/(main)/_components/InternalLayout.tsx +++ b/apps/link/app/(main)/_components/InternalLayout.tsx @@ -1,9 +1,29 @@ "use client"; -import { FC, PropsWithChildren, useState } from "react"; -import { Grid, Box } from "@mui/material"; -import { Sidebar } from "./Sidebar"; +import { FC, PropsWithChildren, useEffect, useState } from "react"; import { SetupModeWarning } from "./SetupModeWarning"; +import { + AppBar as MuiAppBar, + ToolbarProps, + Box, + Grid, + IconButton, + styled, + Toolbar, + Typography, + Menu, + useTheme, + useMediaQuery, +} from "@mui/material"; +import { Sidebar } from "./Sidebar"; +import { + ExpandCircleDown, + MenuBookTwoTone, + MenuSharp, +} from "@mui/icons-material"; +import { fonts } from "@link-stack/ui"; +import Image from "next/image"; +import LinkLogo from "public/link-logo-small.png"; interface InternalLayoutProps extends PropsWithChildren { setupModeActive: boolean; @@ -15,20 +35,93 @@ export const InternalLayout: FC = ({ setupModeActive, leafcutterEnabled, }) => { - const [open, setOpen] = useState(true); + const { poppins } = fonts; + + const theme = useTheme(); + const mobile = useMediaQuery(theme.breakpoints.down("sm")); + + const [open, setOpen] = useState(false); + const [openWidth, setOpenWidth] = useState(0); + const [closedWidth, setClosedWidth] = useState(0); + + useEffect(() => { + setClosedWidth(mobile ? 0 : 70); + setOpenWidth(270); + setOpen(!mobile); + }, [mobile]); + + interface HeaderBarProps extends ToolbarProps { + open?: boolean; + } + + const HeaderBar = styled(Toolbar, { + shouldForwardProp: (prop) => prop !== "open", + })(({ theme, open }) => ({ + backgroundColor: "#25272A", + width: "100%", + height: "56px", + })); return ( + {mobile ? ( + + setOpen(true)} + > + + + + CDR Link + + + Link logo + + + ) : (null)} {children as any} diff --git a/apps/link/app/(main)/_components/Sidebar.tsx b/apps/link/app/(main)/_components/Sidebar.tsx index 6c8af30..8c50799 100644 --- a/apps/link/app/(main)/_components/Sidebar.tsx +++ b/apps/link/app/(main)/_components/Sidebar.tsx @@ -12,6 +12,8 @@ import { ListItemSecondaryAction, Drawer, Collapse, + useTheme, + useMediaQuery, } from "@mui/material"; import { FeaturedPlayList as FeaturedPlayListIcon, @@ -35,9 +37,6 @@ import { getOverviewTicketCountsAction } from "app/_actions/overviews"; import { SearchBox } from "./SearchBox"; import { fonts } from "@link-stack/ui"; -const openWidth = 270; -const closedWidth = 70; - const MenuItem = ({ name, href, @@ -178,14 +177,12 @@ const MenuItem = ({ interface SidebarProps { open: boolean; setOpen: (open: boolean) => void; + openWidth: number; + closedWidth: number; leafcutterEnabled?: boolean; } -export const Sidebar: FC = ({ - open, - setOpen, - leafcutterEnabled = false, -}) => { +export const Sidebar: FC = ({ open, setOpen, openWidth, closedWidth, leafcutterEnabled = false }) => { const pathname = usePathname(); const { data: session } = useSession(); const [overviewCounts, setOverviewCounts] = useState(null); @@ -207,6 +204,9 @@ export const Sidebar: FC = ({ return () => clearInterval(interval); }, []); + const theme = useTheme(); + const mobile = useMediaQuery(theme.breakpoints.down('sm')); + const logout = () => { signOut({ callbackUrl: "/login" }); }; @@ -214,14 +214,15 @@ export const Sidebar: FC = ({ return ( {if (mobile) setOpen(false)}} PaperProps={{ sx: { width: open ? openWidth : closedWidth, border: 0, - overflow: "visible", + overflow: open ? "visible" : "hidden", }, }} > diff --git a/apps/link/app/(main)/tickets/[id]/layout.tsx b/apps/link/app/(main)/tickets/[id]/layout.tsx index 35ce25b..d3ba633 100644 --- a/apps/link/app/(main)/tickets/[id]/layout.tsx +++ b/apps/link/app/(main)/tickets/[id]/layout.tsx @@ -12,11 +12,11 @@ type LayoutProps = { export default function Layout({ detail, edit, params: { id } }: LayoutProps) { return ( - - + + {detail} - + {edit} diff --git a/packages/ui/components/List.tsx b/packages/ui/components/List.tsx index 02a4a26..68b79a8 100644 --- a/packages/ui/components/List.tsx +++ b/packages/ui/components/List.tsx @@ -36,8 +36,8 @@ export const List: FC = ({ }; return ( - - + + = ({ {buttons} - +