import { useTranslation } from 'react-i18next'; import { useSearchParams } from 'react-router-dom'; import { useRef, useState, useEffect } from 'react'; const languages = [ { code: 'en', name: 'English' }, { code: 'ja', name: '日本語' } ]; interface LanguageSwitcherProps { variant?: 'compact' | 'standard'; } function LanguageSwitcher({ variant = 'standard' }: LanguageSwitcherProps) { const { i18n } = useTranslation(); const [searchParams] = useSearchParams(); const isMoe = searchParams.has("moe"); const [isOpen, setIsOpen] = useState(false); const dropdownRef = useRef(null); const currentLanguage = languages.find(lang => lang.code === i18n.language) || languages[0]; // Close the dropdown when clicking outside useEffect(() => { const handleClickOutside = (event: MouseEvent) => { if (dropdownRef.current && !dropdownRef.current.contains(event.target as Node)) { setIsOpen(false); } }; document.addEventListener('mousedown', handleClickOutside); return () => { document.removeEventListener('mousedown', handleClickOutside); }; }, []); return (
{isOpen && (
{languages.map((lang) => ( ))}
)}
); } export default LanguageSwitcher;