'use client' import { useState, useRef, useEffect } from 'react' import { Transition } from '@headlessui/react' import Link from 'next/link' import CONFIG from '../config' import { siteConfig } from '@/lib/config' export default function MobileMenu() { const [mobileNavOpen, setMobileNavOpen] = useState(false) const trigger = useRef(null) const mobileNav = useRef(null) // close the mobile menu on click outside useEffect(() => { const clickHandler = ({ target }) => { if (!mobileNav.current || !trigger.current) return if (!mobileNavOpen || mobileNav.current.contains(target) || trigger.current.contains(target)) return setMobileNavOpen(false) } document.addEventListener('click', clickHandler) return () => document.removeEventListener('click', clickHandler) }) // close the mobile menu if the esc key is pressed useEffect(() => { const keyHandler = ({ keyCode }) => { if (!mobileNavOpen || keyCode !== 27) return setMobileNavOpen(false) } document.addEventListener('keydown', keyHandler) return () => document.removeEventListener('keydown', keyHandler) }) return (