'use client' import { useState, useEffect, useRef } from 'react' import Image from 'next/image' import Link from 'next/link' import styles from './Navbar.module.css' const navLinks = [ { name: 'Home', href: '/' }, { name: 'About', href: '/about-us' }, { name: 'Gallery', href: '/gallery' }, { name: 'Menu', href: '/menu' }, { name: 'Blog', href: '/blog' }, { name: 'Contact', href: '/contact' }, ] export default function Navbar() { const [isOpen, setIsOpen] = useState(false) const [scrolled, setScrolled] = useState(false) const menuRef = useRef(null) const hamburgerRef = useRef(null) const toggleMenu = () => { setIsOpen(!isOpen) } const closeMenu = () => { setIsOpen(false) } // Handle scroll for shadow effect useEffect(() => { const handleScroll = () => { if (window.scrollY > 50) { setScrolled(true) } else { setScrolled(false) } } window.addEventListener('scroll', handleScroll) return () => { window.removeEventListener('scroll', handleScroll) } }, []) // Close menu when clicking outside useEffect(() => { const handleClickOutside = (event: MouseEvent) => { if ( isOpen && menuRef.current && !menuRef.current.contains(event.target as Node) && hamburgerRef.current && !hamburgerRef.current.contains(event.target as Node) ) { closeMenu() } } document.addEventListener('mousedown', handleClickOutside) return () => { document.removeEventListener('mousedown', handleClickOutside) } }, [isOpen]) // Prevent scrolling when mobile menu is open useEffect(() => { if (isOpen) { document.body.style.overflow = 'hidden' } else { document.body.style.overflow = 'unset' } }, [isOpen]) return ( ) }