Skip to content
Snippets Groups Projects
layout.tsx 1.65 KiB
import { MainNav } from "@/components/header"
import DashboardNav from "@/components/nav"
import SearchInput from "@/components/search-input"
import { SiteFooter } from "@/components/site-footer"
import { UserAccountNav } from "@/components/user-nav"
import { dashboardConfig } from "@/lib/config/dashboard"
import { getCurrentUser } from "@/lib/session"

interface DashboardLayoutProps {
    children?: React.ReactNode
}
export default async function ContentLayout({
    children,
}: DashboardLayoutProps) {
    const user = await getCurrentUser()

    return (
        <main className="flex min-h-screen flex-col space-y-6">
            <header className="sticky top-0 z-50 border-b bg-background">
                <div className="container flex h-16 items-center justify-between py-4">
                    <MainNav />
                    <SearchInput className="p-3 w-3/6 2xl:w-2/6" />
                    {user && <UserAccountNav
                        user={{
                            name: user?.name,
                            image: user?.image,
                            username: user?.username,
                        }}
                    />}
                    {!user && <p className="w-8"></p>}
                </div>
            </header>

            <div className="container grid flex-1 gap-12 grid-cols-5">
                <aside className="self-start sticky top-[89px] col-span-1">
                    <DashboardNav items={dashboardConfig.sidebarNav} />
                </aside>
                <div className="flex flex-1 flex-col w-full h-full col-span-4 pb-6">
                    {children}
                </div>
            </div>
        </main>
    )
}