import { Drawer, DrawerContent, Header, ResizableHandle, ResizablePanel, ResizablePanelGroup, Toaster, } from "@marzneshin/components"; import { useAuth } from "@marzneshin/features/auth"; import { DashboardSidebar, ToggleButton } from "@marzneshin/features/sidebar"; import { usePanelToggle } from "@marzneshin/features/sidebar/use-panel-toggle"; import { useScreenBreakpoint } from "@marzneshin/hooks/use-screen-breakpoint"; import { cn } from "@marzneshin/utils"; import { Outlet, createFileRoute, redirect } from "@tanstack/react-router"; export const DashboardLayout = () => { const isDesktop = useScreenBreakpoint("md"); const { collapsed, panelRef, open, setCollapsed, setOpen, toggleCollapse, toggleOpen, } = usePanelToggle(isDesktop); return (
{isDesktop ? ( setCollapsed(true)} onExpand={() => setCollapsed(false)} minSize={15} className={cn("w-[120px] min-w-[70px]")} defaultSize={20} ref={panelRef} maxSize={30} >
) : (
)}
); }; export const Route = createFileRoute("/_dashboard")({ component: () => , beforeLoad: async () => { const loggedIn = await useAuth.getState().isLoggedIn(); if (!loggedIn) { throw redirect({ to: "/login", }); } }, });