import { useEffect, useRef, useState } from 'react' import { useLanguage } from '@/i18n/context' export default function LanguageSwitcher() { const { language, isZh, setLanguage } = useLanguage() const [isOpen, setIsOpen] = useState(false) const dropdownRef = useRef(null) const languages = [ { code: 'zh-CN' as const, label: '中文' }, { code: 'en-US' as const, label: 'English' }, ] const currentLanguage = languages.find((lang) => lang.code === language) || languages[0] const handleLanguageChange = (langCode: 'zh-CN' | 'en-US') => { setLanguage(langCode) setIsOpen(false) } // Close dropdown when clicking outside useEffect(() => { const handleClickOutside = (event: MouseEvent) => { if (dropdownRef.current && !dropdownRef.current.contains(event.target as Node)) { setIsOpen(false) } } if (isOpen) { document.addEventListener('mousedown', handleClickOutside) } return () => { document.removeEventListener('mousedown', handleClickOutside) } }, [isOpen]) return (
{isOpen && (
{languages.map((lang) => ( ))}
)}
) }