import type { Metadata, Viewport } from 'next'; import { NextIntlClientProvider } from 'next-intl'; import { getMessages, setRequestLocale } from 'next-intl/server'; import { hasLocale } from 'next-intl'; import { notFound } from 'next/navigation'; import Script from 'next/script'; import '@/styles/globals.css'; import '@/styles/background-web.css'; import { AuthProvider } from '@/lib/hooks/useAuth'; import { THEME_STORAGE_KEY } from '@/lib/theme'; import { routing, localeHtmlLang } from '@/i18n/routing'; import { LocaleSync } from '@/components/i18n/LocaleSync'; export const metadata: Metadata = { title: 'DyoLink - Dental Clinic & Lab Communication Hub', description: 'Connect dental clinics and laboratories seamlessly', }; export const viewport: Viewport = { width: 'device-width', initialScale: 1, }; export function generateStaticParams() { return routing.locales.map((locale) => ({ locale })); } export default async function LocaleLayout({ children, params, }: { children: React.ReactNode; params: Promise<{ locale: string }>; }) { const { locale } = await params; if (!hasLocale(routing.locales, locale)) { notFound(); } setRequestLocale(locale); const messages = await getMessages(); const themeInit = `(function(){try{var k=${JSON.stringify(THEME_STORAGE_KEY)};var t=localStorage.getItem(k);document.documentElement.setAttribute('data-theme',t==='light'||t==='dark'?t:'dark');}catch(e){document.documentElement.setAttribute('data-theme','dark');}})();`; return (