import clsx from "clsx"; import type { ReactNode } from "react"; import { useState } from "react"; import AppHead from "../components/AppHead"; import LeftSidebar from "../components/drawer/LeftSidebar"; import { SidebarControlButton } from "../components/drawer/Sidebar"; import { useConfigStore } from "../stores/configStore"; type SidebarSettings = { mobile: boolean; desktop: boolean; }; type DashboardLayoutProps = { children: ReactNode; rightSidebar?: ReactNode; onReload?: () => void; }; const defaultState: SidebarSettings = { mobile: false, desktop: true, }; const setMobile = (settings: SidebarSettings, setSettings: (SidebarSettings) => void) => (open: boolean) => setSettings({ mobile: open, desktop: settings.desktop, }); const setDesktop = (settings: SidebarSettings, setSettings: (SidebarSettings) => void) => (open: boolean) => setSettings({ mobile: settings.mobile, desktop: open, }); const DashboardLayout = (props: DashboardLayoutProps) => { const [leftSettings, setLeftSettings] = useState(defaultState); const { layout, setLayout } = useConfigStore(); return ( <> {/* Left sidebar */} {/* Mobile */}
{/* Desktop */}
{/* Right sidebar */} {/* Mobile */} {props.rightSidebar && ( <>
{props.rightSidebar}
setLayout({ showRightSidebar: show })} /> )}
{props.children}
); }; export default DashboardLayout;