import type { Metadata } from "next"; import { Inter } from "next/font/google"; import "./globals.css"; import { ThemeProvider } from "@/providers/theme-provider"; import MountedProvider from "@/providers/mounted.provider"; import { Toaster } from "@/components/ui/toaster"; import { Toaster as SonnerToaster } from "@/components/ui/sonner"; const inter = Inter({ subsets: ["latin"], display: 'swap', preload: true, fallback: ['system-ui', 'arial'] }); // language import { getLangDir } from "rtl-detect"; import { NextIntlClientProvider } from "next-intl"; import { getMessages } from "next-intl/server"; import DirectionProvider from "@/providers/direction-provider"; import AuthProvider from "@/providers/auth.provider"; export const metadata: Metadata = { title: "NetidHub", description: "NetidHub Platform", metadataBase: new URL(process.env.NEXT_PUBLIC_SITE_URL || 'http://localhost:3000'), openGraph: { title: "NetidHub", description: "NetidHub Platform", }, twitter: { card: 'summary_large_image', title: "NetidHub", description: "NetidHub Platform", }, other: { 'X-DNS-Prefetch-Control': 'on', }, }; export default async function RootLayout({ children, params, }: Readonly<{ children: React.ReactNode; params: Promise<{ locale: string }>; }>) { const { locale } = await params; const messages = await getMessages(); const direction = getLangDir(locale); return ( {/* DNS Prefetch for external domains */} {/* Preconnect to external domains */} {/* Preload critical fonts */} {children} ); }