feat: full site build — Project/Melody schema (Option A), admin CRUD, public sections, uploads, email+SMTP, internal analytics, legal pages, docs

This commit is contained in:
2026-08-05 20:53:40 +02:00
parent d87f3033c6
commit c26f41511f
122 changed files with 15068 additions and 41 deletions
+23
View File
@@ -0,0 +1,23 @@
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>
);
}