import { Header, ResizableHandle, ResizablePanel, ResizablePanelGroup, Toaster, Loading, HeaderLogo, HeaderMenu, } 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 { Suspense } from "react"; import { Outlet, Link, createFileRoute, redirect } from "@tanstack/react-router"; import { GithubRepo } from "@marzneshin/features/github-repo"; import { CommandBox } from "@marzneshin/features/search-command"; import { DashboardBottomMenu } from "@marzneshin/features/bottom-menu"; import { VersionIndicator } from "@marzneshin/features/version-indicator"; import { Settings } from "lucide-react"; export const DashboardLayout = () => { const isDesktop = useScreenBreakpoint("md"); const { collapsed, panelRef, setCollapsed, toggleCollapse, } = usePanelToggle(isDesktop); const { isSudo } = useAuth(); return (
{isDesktop && ( )} } center={} end={ <> {(!isDesktop && isSudo()) && ( )} } />
{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", }); } }, });