Files
erika/app/form/admin/layout.tsx
T

35 lines
1.0 KiB
TypeScript

import { SidebarProvider, SidebarTrigger } from "@/components/ui/sidebar";
import { AdminSidebar } from "@/components/admin-sidebar";
import { Toaster } from "@/components/ui/sonner";
import { getServerSession } from "next-auth";
import { authOptions } from "@/app/api/auth/[...nextauth]/route";
import { redirect } from "next/navigation";
export default async function AdminLayout({
children,
}: {
children: React.ReactNode;
}) {
const session = await getServerSession(authOptions);
const adminIds = (process.env.ADMIN_DISCORD_IDS ?? "")
.split(",")
.map((s) => s.trim())
.filter(Boolean);
const discordId = (session?.user as any)?.discordId;
if (!discordId || !adminIds.includes(discordId)) {
redirect("/form");
}
return (
<SidebarProvider>
<div className="flex min-h-screen w-full bg-background text-foreground dark">
<AdminSidebar />
<main className="flex-1 p-6 md:p-8 overflow-y-auto max-w-6xl mx-auto">
{children}
</main>
</div>
</SidebarProvider>
);
}