ajout provider pour rendre le layout dynamique

This commit is contained in:
2026-05-06 20:19:09 +02:00
parent 52a9d47c30
commit 13c88dd4f7
2 changed files with 26 additions and 15 deletions

View File

@@ -1,13 +1,9 @@
import React from 'react';
import Script from 'next/script';
import Navbar from '../components/Navbar';
import Footer from '../components/Footer';
import { UserProvider } from '../components/UserProvider';
import AnalyticsTracker from '../components/AnalyticsTracker';
import CookieBanner from '../components/CookieBanner';
import { Metadata } from 'next';
import { Toaster } from 'react-hot-toast';
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';
@@ -34,6 +30,9 @@ export async function generateMetadata(): Promise<Metadata> {
alternates: {
canonical: '/',
},
icons: {
icon: '/favicon.png', // Le favicon est géré proprement ici maintenant
},
};
}
@@ -53,21 +52,15 @@ export default async function RootLayout({ children }: { children: React.ReactNo
return (
<html lang="fr" className={`${inter.variable} ${playfair.variable}`} style={devBrandOverride} suppressHydrationWarning>
<head>
<link rel="icon" type="image/png" href="/favicon.png" />
</head>
<body className="bg-gray-50 text-gray-900 antialiased min-h-screen flex flex-col font-sans" suppressHydrationWarning>
<UserProvider>
<Toaster position="top-right" />
<AnalyticsTracker />
<Providers>
<Navbar settings={settings} />
<main className="flex-grow">
{children}
</main>
<Footer settings={settings} />
<CookieBanner />
</UserProvider>
</Providers>
</body>
</html>
);
}
}

18
components/Providers.tsx Normal file
View File

@@ -0,0 +1,18 @@
"use client";
import React from 'react';
import { Toaster } from 'react-hot-toast';
import { UserProvider } from './UserProvider';
import AnalyticsTracker from './AnalyticsTracker';
import CookieBanner from './CookieBanner';
export function Providers({ children }: { children: React.ReactNode }) {
return (
<UserProvider>
<Toaster position="top-right" />
<AnalyticsTracker />
{children}
<CookieBanner />
</UserProvider>
);
}