42 lines
1.3 KiB
TypeScript
42 lines
1.3 KiB
TypeScript
import { redirect } from "next/navigation";
|
|
import { auth } from "@/lib/auth";
|
|
import { sitePreferencesService } from "@/services/preferences/site-preferences.service";
|
|
import { Role } from "@/prisma/generated/prisma/client";
|
|
import NavigationWrapper from "@/components/NavigationWrapper";
|
|
import AdminPanel from "@/components/AdminPanel";
|
|
|
|
export const dynamic = "force-dynamic";
|
|
|
|
export default async function AdminPage() {
|
|
const session = await auth();
|
|
|
|
if (!session?.user) {
|
|
redirect("/login");
|
|
}
|
|
|
|
if (session.user.role !== Role.ADMIN) {
|
|
redirect("/");
|
|
}
|
|
|
|
// Récupérer les préférences globales du site (ou créer si elles n'existent pas)
|
|
const sitePreferences =
|
|
await sitePreferencesService.getOrCreateSitePreferences();
|
|
|
|
return (
|
|
<main className="min-h-screen bg-black relative">
|
|
{/* Background Image */}
|
|
<div
|
|
className="absolute inset-0 bg-cover bg-center bg-no-repeat"
|
|
style={{
|
|
backgroundImage: `url('/got-light.jpg')`,
|
|
}}
|
|
>
|
|
{/* Dark overlay for readability */}
|
|
<div className="absolute inset-0 bg-gradient-to-b from-black/70 via-black/60 to-black/80"></div>
|
|
</div>
|
|
<NavigationWrapper />
|
|
<AdminPanel initialPreferences={sitePreferences} />
|
|
</main>
|
|
);
|
|
}
|