import { redirect } from "next/navigation"; import { cookies, headers } from "next/headers"; import { SidebarInset, SidebarProvider, SidebarTrigger, } from "~/components/ui/sidebar"; import { Separator } from "~/components/ui/separator"; import { AppSidebar } from "~/components/dashboard/app-sidebar"; import { auth } from "~/lib/auth"; import { BreadcrumbProvider, BreadcrumbDisplay, } from "~/components/ui/breadcrumb-provider"; import { StudyProvider } from "~/lib/study-context"; import { TourProvider } from "~/components/onboarding/TourProvider"; interface DashboardLayoutProps { children: React.ReactNode; } export default async function DashboardLayout({ children, }: DashboardLayoutProps) { const session = await auth.api.getSession({ headers: await headers(), }); if (!session?.user) { redirect("/auth/signin"); } const userRole = "researcher"; // Default role for dashboard access const cookieStore = await cookies(); const defaultOpen = cookieStore.get("sidebar_state")?.value === "true"; // Pre-seed selected study from cookie (SSR) to avoid client flash const selectedStudyCookie = cookieStore.get("hristudio_selected_study")?.value ?? null; return (
{children}
); }