import React from 'react'; import { useScrollEffects } from '../../hooks/useScrollEffects'; import { mergeClasses as cn } from '../../styles/designSystem'; import { Logo } from './navbar/Logo'; import { NavLinks } from './navbar/NavLinks'; import { ActionButtons } from './navbar/ActionButtons'; import { MobileMenuButton } from './navbar/MobileMenuButton'; import { MobileMenu } from './MobileMenu'; import type { Translation } from '../../types/i18n'; interface ModernNavigationProps { translations: Translation['navigation']; languageSwitcher: React.ReactElement; } export const ModernNavigation: React.FC = ({ translations, languageSwitcher }) => { const { scrolled } = useScrollEffects(); const [mobileMenuOpen, setMobileMenuOpen] = React.useState(false); // Fermer le menu mobile lors du redimensionnement React.useEffect(() => { const handleResize = () => { if (window.innerWidth >= 768) { setMobileMenuOpen(false); } }; window.addEventListener('resize', handleResize); return () => window.removeEventListener('resize', handleResize); }, []); // Empêcher le scroll du body quand le menu mobile est ouvert React.useEffect(() => { if (mobileMenuOpen) { document.body.style.overflow = 'hidden'; } else { document.body.style.overflow = 'unset'; } return () => { document.body.style.overflow = 'unset'; }; }, [mobileMenuOpen]); return ( <> {/* Navigation Bar */} {/* Spacer pour compenser la navbar fixed */}
{/* Menu Mobile */} setMobileMenuOpen(false)} translations={translations} /> ); };