import { getSession } from "@/lib/auth-utils"; import { headers } from "next/headers"; import type { Metadata } from "next"; import { Manrope } from "next/font/google"; import "./globals.css"; import { Toaster } from "@/components/ui/sonner"; import { UmamiAnalytics } from "@/components/analytics/umami-analytics"; const manrope = Manrope({ variable: "--font-manrope", subsets: ["latin"], weight: ["400", "500", "600", "700"], }); export const metadata: Metadata = { metadataBase: new URL( process.env.NEXT_PUBLIC_SITE_URL ?? "https://mein-kitaplaner.de", ), title: { default: "Der digitale Kita-Planer für Elternvereine", template: "%s | Kita-Planer", }, description: "Kita-Planer bündelt Dienste, Termine, Notdienste, Abwesenheiten und sichere Kommunikation für Elternvereine an einem Ort.", openGraph: { title: "Der digitale Kita-Planer für Elternvereine", description: "Organisiert Dienste, teilt Neuigkeiten und behaltet Termine gemeinsam im Blick.", type: "website", locale: "de_DE", images: [ { url: "/og-image.png", width: 1200, height: 630, alt: "Ein Kind spielt mit bunten Holzklötzen.", }, ], }, twitter: { card: "summary_large_image", title: "Der digitale Kita-Planer für Elternvereine", description: "Organisiert Dienste, teilt Neuigkeiten und behaltet Termine gemeinsam im Blick.", images: ["/og-image.png"], }, }; export default async function RootLayout({ children, }: Readonly<{ children: React.ReactNode; }>) { const [requestHeaders, session] = await Promise.all([headers(), getSession()]); const nonce = requestHeaders.get("x-nonce") ?? undefined; return (
{children}