'use client'; import { useState, useEffect } from 'react'; import { Menu, X, ChevronDown } from 'lucide-react'; import { StaticLink } from '@/components/ui/static-link'; import { NAVIGATION_V2, MEGA_DROPDOWN_DATA } from '@/lib/constants'; import { cn } from '@/lib/utils'; import { useFocusTrap } from '@/hooks/use-focus-trap'; interface MobileMenuProps { className?: string; } export function MobileMenu({ className }: MobileMenuProps) { const [isOpen, setIsOpen] = useState(false); const [expandedDropdown, setExpandedDropdown] = useState(null); const focusTrapRef = useFocusTrap(isOpen); useEffect(() => { if (isOpen) { document.body.style.overflow = 'hidden'; } else { document.body.style.overflow = 'unset'; } return () => { document.body.style.overflow = 'unset'; }; }, [isOpen]); const handleKeyDown = (event: React.KeyboardEvent, action?: () => void) => { if (event.key === 'Enter' || event.key === ' ') { event.preventDefault(); action?.(); } if (event.key === 'Escape' && isOpen) { setIsOpen(false); } }; const toggleDropdown = (key: string) => { setExpandedDropdown(expandedDropdown === key ? null : key); }; return (
{isOpen && ( <>
setIsOpen(false)} aria-hidden="true" /> )}
); }