From a37b34f75839cb2a196e3d2438af21cafbe70f9a Mon Sep 17 00:00:00 2001 From: streaper2 Date: Wed, 6 May 2026 20:28:21 +0200 Subject: [PATCH] feat: initialize root layout with dynamic provider rendering and site metadata configuration --- app/layout.tsx | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/app/layout.tsx b/app/layout.tsx index de70c0b..3358df0 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -1,12 +1,18 @@ import React from 'react'; +import dynamic from 'next/dynamic'; // <-- 1. On importe l'outil dynamique import Navbar from '../components/Navbar'; import Footer from '../components/Footer'; -import { Providers } from '../components/Providers'; // <-- L'astuce est ici ! import { getSiteSettings } from '../lib/settings'; import { Metadata } from 'next'; import { Inter, Playfair_Display } from 'next/font/google'; import './globals.css'; +// 2. LA MAGIE EST ICI : On force Next.js à ignorer les Providers pendant le build serveur +const Providers = dynamic( + () => import('../components/Providers').then((mod) => mod.Providers), + { ssr: false } // Interdit le Server-Side Rendering pour tout ce qui est dedans ! +); + const inter = Inter({ subsets: ['latin'], variable: '--font-inter', @@ -19,7 +25,7 @@ const playfair = Playfair_Display({ display: 'swap', }); -export const dynamic = 'force-dynamic'; +export const dynamicMode = 'force-dynamic'; // Renommé pour éviter les conflits de variables export async function generateMetadata(): Promise { const settings = await getSiteSettings(); @@ -31,7 +37,7 @@ export async function generateMetadata(): Promise { canonical: '/', }, icons: { - icon: '/favicon.png', // Le favicon est géré proprement ici maintenant + icon: '/favicon.png', }, }; }