import { getPublicHeaderBanner } from "@cms/db" import { notFound } from "next/navigation" import { hasLocale, NextIntlClientProvider } from "next-intl" import { getTranslations } from "next-intl/server" import type { ReactNode } from "react" import { PublicAnnouncements } from "@/components/public-announcements" import { PublicHeaderBanner } from "@/components/public-header-banner" import { PublicSiteFooter } from "@/components/public-site-footer" import { PublicSiteHeader } from "@/components/public-site-header" import { routing } from "@/i18n/routing" import { Providers } from "../providers" type LocaleLayoutProps = { children: ReactNode params: Promise<{ locale: string }> } export async function generateMetadata({ params }: LocaleLayoutProps) { const { locale } = await params if (!hasLocale(routing.locales, locale)) { return {} } const t = await getTranslations({ locale, namespace: "Seo", }) return { title: t("title"), description: t("description"), openGraph: { title: t("title"), description: t("description"), }, } } export default async function LocaleLayout({ children, params }: LocaleLayoutProps) { const { locale } = await params if (!hasLocale(routing.locales, locale)) { notFound() } const banner = await getPublicHeaderBanner() return (
{children}
) }