import { useEffect, useRef, useState } from 'react' import { useTranslation } from 'react-i18next' export default function LanguageSwitcher() { const { i18n, t } = useTranslation('common') const [isOpen, setIsOpen] = useState(false) const dropdownRef = useRef(null) const currentLang = i18n.language const languages = [ { code: 'zh-CN', label: '中文' }, { code: 'en-US', label: 'English' }, ] const currentLanguage = languages.find((lang) => lang.code === currentLang) || languages[0] const handleLanguageChange = (langCode: string) => { i18n.changeLanguage(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) => ( ))}
)}
) }