-
Yusuf Akgül authoredYusuf Akgül authored
layout.tsx 1.70 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 (
<div 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 md:w-2/3 2xl:w-1/3" />
{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 md:grid-cols-[200px_1fr]">
<aside className="hidden w-[200px] flex-col md:flex">
<DashboardNav items={dashboardConfig.sidebarNav} />
</aside>
<main className="flex w-full flex-1 flex-col overflow-hidden">
{children}
</main>
</div>
<SiteFooter className="border-t" />
</div>
)
}