import Button from "@/components/Button"; import LogoWordmark from "@/common/LogoWordmark"; import TransitionWrapper from "@/common/TransitionWrapper"; import { useNav } from "@/hooks/use-nav"; import { cn } from "@/lib/utils"; import { useAppStore } from "@/store/store"; import { useEffect, useRef } from "@wordpress/element"; import { X } from "lucide-react"; import { __ } from "@wordpress/i18n"; const MobileMenu = ({ className = "" }: { className?: string }) => { const { sidebarOpen, toggleSidebar } = useAppStore(); const { navItems, activeMenuItem, setActiveMenuItem } = useNav(); const asideRef = useRef(null); useEffect(() => { const handleClickOutside = (event: MouseEvent) => { if (!sidebarOpen) return; if (asideRef.current && !asideRef.current.contains(event.target as Node)) { toggleSidebar(); } }; const handleKeyDown = (event: KeyboardEvent) => { if (!sidebarOpen) return; if (event.key === 'Escape' && sidebarOpen) { toggleSidebar(); } } document.addEventListener('mousedown', handleClickOutside); document.addEventListener('keydown', handleKeyDown); return () => { document.removeEventListener('mousedown', handleClickOutside); document.removeEventListener('keydown', handleKeyDown); }; }, [sidebarOpen, asideRef]); return (
) } export default MobileMenu;