'use client'; import { useState, useEffect } from 'react'; import Image from 'next/image'; import ProductMenu from './ProductMenu'; import ResourceMenu from './ResourceMenu'; export default function Navbar() { const [scrolled, setScrolled] = useState(false); const [language, setLanguage] = useState<'zh' | 'en'>('zh'); const [showLangMenu, setShowLangMenu] = useState(false); const [showProductMenu, setShowProductMenu] = useState(false); const [showResourceMenu, setShowResourceMenu] = useState(false); useEffect(() => { const handleScroll = () => { setScrolled(window.scrollY > 50); }; window.addEventListener('scroll', handleScroll); return () => window.removeEventListener('scroll', handleScroll); }, []); useEffect(() => { const handleClickOutside = (e: MouseEvent) => { const target = e.target as Element; if (showLangMenu && !target.closest('.language-selector')) { setShowLangMenu(false); } if (showProductMenu && !target.closest('.product-menu-container')) { setShowProductMenu(false); } if (showResourceMenu && !target.closest('.resource-menu-container')) { setShowResourceMenu(false); } }; document.addEventListener('click', handleClickOutside); return () => document.removeEventListener('click', handleClickOutside); }, [showLangMenu, showProductMenu, showResourceMenu]); const toggleLanguage = (lang: 'zh' | 'en') => { setLanguage(lang); setShowLangMenu(false); }; return ( <> setShowProductMenu(false)} language={language} /> setShowResourceMenu(false)} language={language} /> ); }