import { Geist, Geist_Mono } from "next/font/google"; import { NextAuthSessionProvider } from "./_components/AuthSessionProvider"; import { getServerSession } from "./api/auth/[...nextauth]/auth"; import { CustomErrorBoundary } from "_components/ErrorBoundary"; import { Toaster } from "react-hot-toast"; import "./globals.css"; import { QueryProvider } from "_components/QueryClient"; import { prisma } from "@repo/db"; import React from "react"; import { Maintenance } from "@repo/shared-components"; const geistSans = Geist({ variable: "--font-geist-sans", subsets: ["latin"], }); const geistMono = Geist_Mono({ variable: "--font-geist-mono", subsets: ["latin"], }); const RootLayout = async ({ children, }: Readonly<{ children: React.ReactNode; }>) => { const session = await getServerSession(); const latestNotam = await prisma.config.findFirst({ orderBy: { createdAt: "desc" }, }); return ( {latestNotam?.maintenanceEnabled && !session?.user.permissions.includes("ADMIN_MESSAGE") && ( )} {(!latestNotam?.maintenanceEnabled || session?.user.permissions.includes("ADMIN_MESSAGE")) && ( <>
{children} )}
); }; RootLayout.displayName = "RootLayout"; export default RootLayout;