import React, { useEffect } from 'react'; import { Logo } from './navbar/Logo'; import { useTranslation } from '@/lib/hooks/useTranslation'; import { URLS } from '@/lib/config/constants'; import { cn, createNavClickHandler } from '@/lib/utils'; import { DiscordLogo } from '@/components/ui/DiscordLogo'; import type { Translation } from '@/types/i18n'; interface MobileMenuProps { isOpen: boolean; onClose: () => void; translations: Translation['navigation']; } interface MobileNavItemProps { title: string; href: string; isExternal?: boolean; onClick?: () => void; isDiscord?: boolean; } const MobileNavItem: React.FC = ({ title, href, isExternal = false, onClick, isDiscord = false }) => { const handleClick = (e: React.MouseEvent) => { if (onClick) { e.preventDefault(); onClick(); } }; return (
{isDiscord && } {title}
{isExternal && ( )}
); }; export const MobileMenu: React.FC = ({ isOpen, onClose, translations }) => { const { t } = useTranslation(); // Gérer le scroll du body useEffect(() => { if (isOpen) { document.body.style.overflow = 'hidden'; } else { document.body.style.overflow = 'unset'; } return () => { document.body.style.overflow = 'unset'; }; }, [isOpen]); // Gestionnaire de navigation const handleNavClick = createNavClickHandler(onClose); return (
{/* Overlay simple */}
{/* Menu Panel épuré */}
{/* Header simple */}
{/* Navigation simple */}
handleNavClick('home')} /> handleNavClick('services')} /> handleNavClick('about')} /> handleNavClick('contact')} /> {/* Séparateur simple */}
); };