import type { Metadata, Viewport } from "next"; import localFont from "next/font/local"; import { cookies, headers } from "next/headers"; 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"], }); const amiri = localFont({ src: [ { path: "../../public/fonts/Amiri/Amiri-Regular.ttf", weight: "400", style: "normal", }, { path: "../../public/fonts/Amiri/Amiri-Italic.ttf", weight: "400", style: "italic", }, { path: "../../public/fonts/Amiri/Amiri-Bold.ttf", weight: "700", style: "normal", }, { path: "../../public/fonts/Amiri/Amiri-BoldItalic.ttf", weight: "700", style: "italic", }, ], 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 [cookieStore, requestHeaders] = await Promise.all([ cookies(), headers(), ]); const headerLocale = requestHeaders.get("x-habib-locale"); const cookieLocale = cookieStore.get("HABIB_LANGUAGE")?.value ?? cookieStore.get("habib_language")?.value; const locale = headerLocale && isLocale(headerLocale) ? headerLocale : isLocale(cookieLocale) ? cookieLocale : defaultLocale; return (