import type { Metadata } from "next"; import localFont from "next/font/local"; import "./globals.css"; import { NextAuthSessionProvider } from "./_components/AuthSessionProvider"; import { getServerSession } from "./api/auth/[...nextauth]/auth"; import { Toaster } from "react-hot-toast"; import { QueryProvider } from "_components/QueryProvider"; import { prisma } from "@repo/db"; import { Error as ErrorComp } from "_components/Error"; import { Maintenance } from "@repo/shared-components"; const geistSans = localFont({ src: "./fonts/GeistVF.woff", variable: "--font-geist-sans", }); const geistMono = localFont({ src: "./fonts/GeistMonoVF.woff", variable: "--font-geist-mono", }); export const metadata: Metadata = { title: "VAR Leitstelle v2", description: "Die neue VAR Leitstelle.", }; export default async function RootLayout({ children, }: Readonly<{ children: React.ReactNode; }>) { const session = await getServerSession(); const config = await prisma.notam.findFirst({ orderBy: [{ createdAt: "desc" }], }); return ( {session?.user.isBanned && ( )} {config?.maintenanceEnabled && !session?.user.permissions.includes("ADMIN_MESSAGE") && ( )} {!session?.user.isBanned && (!config?.maintenanceEnabled || session?.user.permissions.includes("ADMIN_MESSAGE")) && children} ); }