route.tsx 1005 B

1234567891011121314151617181920212223242526272829303132
  1. import { createFileRoute, Outlet } from '@tanstack/react-router'
  2. import Cookies from 'js-cookie'
  3. import { cn } from '@/lib/utils'
  4. import { SidebarProvider } from '@/components/ui/sidebar'
  5. import { AppSidebar } from '@/components/layout/app-sidebar'
  6. import SkipToMain from '@/components/skip-to-main'
  7. export const Route = createFileRoute('/_authenticated')({
  8. component: RouteComponent,
  9. })
  10. function RouteComponent() {
  11. const defaultOpen = Cookies.get('sidebar:state') !== 'false'
  12. return (
  13. <SidebarProvider defaultOpen={defaultOpen}>
  14. <SkipToMain />
  15. <AppSidebar />
  16. <div
  17. id='content'
  18. className={cn(
  19. 'max-w-full w-full ml-auto',
  20. 'peer-data-[state=collapsed]:w-[calc(100%-var(--sidebar-width-icon))]',
  21. 'peer-data-[state=expanded]:w-[calc(100%-var(--sidebar-width))]',
  22. 'transition-[width] ease-linear duration-200',
  23. 'h-svh flex flex-col'
  24. )}
  25. >
  26. <Outlet />
  27. </div>
  28. </SidebarProvider>
  29. )
  30. }