since3-portal/app/admin/layout.tsx
2026-09-29 22:56:37 +02:00

24 lines
No EOL
1 KiB
TypeScript

import { cookies } from "next/headers";
import { SidebarProvider } from "@/components/ui/sidebar";
import { verifySession } from "@/lib/supabase/dal";
import { AppSidebar } from "@/modules/shared/ui/components/app-sidebar";
import { MobileHeader } from "@/modules/shared/ui/components/mobile-header";
import { TermsDialog } from "@/modules/shared/ui/components/terms-dialog";
export default async function AdminLayout({ children }: { children: React.ReactNode }) {
const session = await verifySession()
const cookieStore = await cookies()
const defaultOpen = cookieStore.get("sidebar_state")?.value !== "false"
return (
<SidebarProvider defaultOpen={defaultOpen}>
{!session.isAdmin && !session.hasAcceptedTerms && <TermsDialog/>}
<AppSidebar session={session}/>
<div className="flex min-w-0 flex-1 flex-col">
<MobileHeader />
<main className="flex-1 px-4 py-6 sm:px-6 md:p-8">{children}</main>
</div>
</SidebarProvider>
)
}