import type { Metadata, Viewport } from "next"; import { Amiri } from "next/font/google"; import localFont from "next/font/local"; import { headers } from "next/headers"; import Script from "next/script"; import Providers from "./providers"; import "./globals.css"; import DevClickToComponent from "@/components/Componentes/dev-click-to-component"; import TokenSwitcher from "@/components/Componentes/token-switcher"; import { defaultLocale, isLocale, localeDirections, } from "@/translations/config"; const faminela = localFont({ src: "../../public/fonts/Faminela/Faminela.otf", variable: "--font-faminela-local", display: "swap", preload: false, fallback: ["Arial", "sans-serif"], }); // Amiri has no UI consumer above the fold (arabic fonts are mapped to Segoe // UI in globals.css), so preloading it only competes with critical resources // on a cold start. `display: swap` lets it load lazily if a consumer appears. const amiri = Amiri({ weight: ["400", "700"], subsets: ["arabic"], variable: "--font-amiri", display: "swap", preload: false, fallback: ["Arial", "sans-serif"], }); const isDevelopment = process.env.NODE_ENV !== "production"; export const metadata: Metadata = { title: "Habib Marriage", description: "Islamic Marriage Platform", }; export const viewport: Viewport = { width: "device-width", initialScale: 1, maximumScale: 1, userScalable: false, viewportFit: "cover", themeColor: "#ffffff", }; export default async function RootLayout({ children, }: Readonly<{ children: React.ReactNode; }>) { const requestHeaders = await headers(); const headerLocale = requestHeaders.get("x-habib-locale"); const locale = headerLocale && isLocale(headerLocale) ? headerLocale : defaultLocale; return (