mosaicmap/app/admin/layout.tsx
2025-08-17 20:28:13 +08:00

37 lines
1.0 KiB
TypeScript

import { cookies } from "next/headers"
import { AppSidebar } from "./sidebar"
import {
SidebarInset,
SidebarProvider,
} from "@/components/ui/sidebar"
import { redirect } from "next/navigation"
import { Metadata, ResolvingMetadata } from "next";
import { getSiteConfigs } from "@/lib/fetchers"
export default async function Layout({ children }: { children: React.ReactNode }) {
const isLoggedIn = (await cookies()).get('jwt')?.value
if (!isLoggedIn) {
redirect('/login')
}
return (
<SidebarProvider
style={
{
"--sidebar-width": "calc(var(--spacing) * 72)",
"--header-height": "calc(var(--spacing) * 12)",
} as React.CSSProperties
}
>
<AppSidebar variant="inset" />
<SidebarInset className="overflow-hidden">
<div className="max-h-[100vh] h-[98vh] flex flex-col">
{children}
</div>
</SidebarInset>
</SidebarProvider>
)
}