import type { Metadata } from "next"; import { Inter } from "next/font/google"; import "./globals.css"; import "./theme.css"; import "../../style/ckeditor.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: "Media Hub | POLRI", description: "Media Hub Platform for POLRI", metadataBase: new URL(process.env.NEXT_PUBLIC_SITE_URL || 'https://mediahub.polri.go.id'), openGraph: { title: "Media Hub | POLRI", description: "Media Hub Platform for POLRI", }, twitter: { card: 'summary_large_image', title: "Media Hub | POLRI", description: "Media Hub Platform for POLRI", }, other: { 'X-DNS-Prefetch-Control': 'on', }, }; export default async function RootLayout({ children, params: { locale }, }: Readonly<{ children: React.ReactNode; params: { locale: string }; }>) { const messages = await getMessages(); const direction = getLangDir(locale); return (
{/* DNS Prefetch for external domains */} {/* Preconnect to external domains */} {/* Preload critical fonts */} {/* Load UserWay script only when needed */}