import { headers } from 'next/headers'
import { detectUserLanguage, parseAcceptLanguage } from '@/lib/i18n/detect-user-language'
import { loadTranslations } from '@/lib/i18n/load-translations'
import { PublicProviders } from '@/components/public-providers'

/**
 * Le body racine est en hauteur d’écran avec débordement masqué
 * (pour l’application connectée). Les pages publiques (accueil, tarifs,
 * notes publiées) doivent pouvoir défiler : on crée un conteneur de
 * défilement qui couvre tout l’écran, indépendant du body.
 */
export default async function PublicLayout({ children }: { children: React.ReactNode }) {
  const headersList = await headers()
  const browserLang = parseAcceptLanguage(headersList.get('accept-language'))
  const initialLanguage = await detectUserLanguage(browserLang)
  const initialTranslations = await loadTranslations(initialLanguage)

  return (
    <PublicProviders initialLanguage={initialLanguage} initialTranslations={initialTranslations}>
      <div
        data-public-scroll-root
        className="fixed inset-0 z-0 overflow-y-auto overflow-x-hidden overscroll-y-contain"
        style={{ WebkitOverflowScrolling: 'touch' }}
      >
        {children}
      </div>
    </PublicProviders>
  )
}
