24 lines
621 B
TypeScript
24 lines
621 B
TypeScript
import type { ReactNode } from "react";
|
|
import { redirect } from "next/navigation";
|
|
import AdminShell from "@/components/admin/admin-shell";
|
|
import { auth, signOut } from "@/lib/auth";
|
|
|
|
export default async function AdminProtectedLayout({ children }: { children: ReactNode }) {
|
|
const session = await auth();
|
|
|
|
if (!session?.user) {
|
|
redirect("/admin/login");
|
|
}
|
|
|
|
async function handleSignOut() {
|
|
"use server";
|
|
await signOut({ redirectTo: "/admin/login" });
|
|
}
|
|
|
|
return (
|
|
<AdminShell userEmail={session.user.email ?? "Admin"} signOutAction={handleSignOut}>
|
|
{children}
|
|
</AdminShell>
|
|
);
|
|
}
|