import type { ReactNode } from "react"; import { unstable_noStore as noStore } from "next/cache"; import { getLocale } from "next-intl/server"; import { redirect } from "next/navigation"; import { SiteAmbientBackdrop } from "@/components/layout/site-ambient-backdrop"; import { SiteFooter } from "@/components/layout/site-footer"; import { SiteHeader } from "@/components/layout/site-header"; import { isAdminAuthenticated } from "@/lib/admin-auth"; import { getMaintenanceMode, getSiteSettings, getSiteSettingsMediaBindings } from "@/lib/app-config"; import { getLocalizedPath, resolveLocale } from "@/lib/locale"; type SiteLayoutProps = { children: ReactNode; params: Promise<{ locale: string; }>; }; export const dynamic = "force-dynamic"; export const revalidate = 0; export default async function SiteLayout({ children, params }: SiteLayoutProps) { noStore(); await params; const [maintenanceEnabled, mediaBindings, siteSettings] = await Promise.all([ getMaintenanceMode(), getSiteSettingsMediaBindings(), getSiteSettings(), ]); const localeKey = resolveLocale(await getLocale().catch(() => siteSettings.defaultLocale), siteSettings.defaultLocale); const authenticated = await isAdminAuthenticated(); if (maintenanceEnabled && !authenticated) { redirect(getLocalizedPath(localeKey, "/coming-soon", siteSettings.defaultLocale)); } return (