import { useTranslation } from 'react-i18next'; import { Button } from '@/components/ui/button'; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from '@/components/ui/dropdown-menu'; import { Globe } from 'lucide-react'; import { languages } from '@/i18n/config'; import { useEffect } from 'react'; export function LanguageSwitcher() { const { i18n } = useTranslation(); useEffect(() => { // Update document direction based on language const currentLang = languages[i18n.language as keyof typeof languages]; if (currentLang) { document.documentElement.dir = currentLang.dir; document.documentElement.lang = i18n.language; } }, [i18n.language]); const changeLanguage = (lng: string) => { i18n.changeLanguage(lng); const lang = languages[lng as keyof typeof languages]; if (lang) { document.documentElement.dir = lang.dir; document.documentElement.lang = lng; } }; const currentLanguage = languages[i18n.language as keyof typeof languages] || languages.en; return ( {Object.entries(languages).map(([code, lang]) => ( changeLanguage(code)} className={`cursor-pointer ${i18n.language === code ? 'bg-yellow-100 dark:bg-yellow-900' : ''}`} > {lang.flag} {lang.name} ))} ); }