Files
bewell-in-ua/app/(protected)/admin/layout.tsx
2025-02-05 08:01:14 +02:00

66 lines
1.8 KiB
TypeScript

import {cookies} from 'next/headers'
import {ReactNode} from 'react'
import {auth} from '@/auth'
import AdminPermission from '@/components/(protected)/admin/auth/permission'
import {AdminSidebar} from '@/components/(protected)/admin/sidebar'
import {
SidebarInset,
SidebarProvider,
SidebarTrigger
} from '@/components/ui/sidebar'
import {
Breadcrumb,
BreadcrumbItem,
BreadcrumbLink,
BreadcrumbList,
BreadcrumbPage,
BreadcrumbSeparator
} from '@/ui/breadcrumb'
import {Separator} from '@/ui/separator'
export default async function AdminLayout({children}: {children: ReactNode}) {
//const session = await auth()
if (!(await auth())) return <AdminPermission />
const cookieStore = await cookies()
const defaultOpen = cookieStore.get('sidebar:state')?.value === 'true'
return (
<SidebarProvider
defaultOpen={defaultOpen}
style={{
// @ts-ignore
'--sidebar-width': '16rem',
'--sidebar-width-mobile': '18rem'
}}
>
<AdminSidebar />
<SidebarInset>
<header className='flex h-16 shrink-0 items-center gap-2 transition-[width,height] ease-linear group-has-[[data-collapsible=icon]]/sidebar-wrapper:h-12'>
<div className='flex items-center gap-2 px-4'>
<SidebarTrigger className='-ml-1' />
<Separator orientation='vertical' className='mr-2 h-4' />
<Breadcrumb>
<BreadcrumbList>
<BreadcrumbItem className='hidden md:block'>
<BreadcrumbLink href='#'>
Building Your Application
</BreadcrumbLink>
</BreadcrumbItem>
<BreadcrumbSeparator className='hidden md:block' />
<BreadcrumbItem>
<BreadcrumbPage>Data Fetching</BreadcrumbPage>
</BreadcrumbItem>
</BreadcrumbList>
</Breadcrumb>
</div>
</header>
<main id='admin-bw-panel' className='container'>
{children}
</main>
</SidebarInset>
</SidebarProvider>
)
}