Archived
37 lines
800 B
TypeScript
37 lines
800 B
TypeScript
import { createClient } from "@/utils/supabase/server";
|
|
import { redirect } from "next/navigation";
|
|
import AdminSidebar from "./components/AdminSidebar";
|
|
|
|
export default async function AdminDashboardLayout({
|
|
children,
|
|
}: {
|
|
children: React.ReactNode;
|
|
}) {
|
|
const supabase = await createClient();
|
|
|
|
const {
|
|
data: { user },
|
|
} = await supabase.auth.getUser();
|
|
|
|
if (!user) {
|
|
redirect("/admin/login");
|
|
}
|
|
|
|
const { data: adminUser } = await supabase
|
|
.from("admin_users")
|
|
.select("role")
|
|
.eq("user_id", user.id)
|
|
.single();
|
|
|
|
if (!adminUser) {
|
|
redirect("/admin/login");
|
|
}
|
|
|
|
return (
|
|
<div className="flex min-h-screen">
|
|
<AdminSidebar role={adminUser.role} />
|
|
<main className="flex-1 bg-gray-50 p-8 overflow-auto">{children}</main>
|
|
</div>
|
|
);
|
|
}
|