import { useTranslation } from 'react-i18next' import { useState, useRef, useEffect } from 'react' const languages = [ { code: 'ru', name: 'RU', flag: '🇷🇺', fullName: 'Русский' }, { code: 'en', name: 'EN', flag: '🇬🇧', fullName: 'English' }, { code: 'zh', name: 'ZH', flag: '🇨🇳', fullName: '中文' }, { code: 'fa', name: 'FA', flag: '🇮🇷', fullName: 'فارسی' }, ] export default function LanguageSwitcher() { const { i18n } = useTranslation() const [isOpen, setIsOpen] = useState(false) const dropdownRef = useRef(null) const currentLang = languages.find((l) => l.code === i18n.language) || languages[0] useEffect(() => { function handleClickOutside(event: MouseEvent) { if (dropdownRef.current && !dropdownRef.current.contains(event.target as Node)) { setIsOpen(false) } } document.addEventListener('mousedown', handleClickOutside) return () => document.removeEventListener('mousedown', handleClickOutside) }, []) const changeLanguage = (code: string) => { i18n.changeLanguage(code) // Set document direction for RTL languages document.documentElement.dir = code === 'fa' ? 'rtl' : 'ltr' setIsOpen(false) } // Set initial direction on mount useEffect(() => { document.documentElement.dir = i18n.language === 'fa' ? 'rtl' : 'ltr' }, [i18n.language]) return (
{isOpen && (
{languages.map((lang) => ( ))}
)}
) }