import React, { useRef, useState, useEffect } from 'react'; import { useTranslation } from 'react-i18next'; import { Globe } from 'lucide-react'; const LanguageSwitcher: React.FC = () => { const { i18n } = useTranslation(); const [isOpen, setIsOpen] = useState(false); const [isMobile, setIsMobile] = useState(false); const dropdownRef = useRef(null); const languages = [ { code: 'en', name: 'English' }, { code: 'de', name: 'Deutsch' }, { code: 'sr', name: 'Srpski' }, ]; const currentLanguage = languages.find(lang => lang.code === i18n.language)?.name || 'Language'; const handleKeyDown = (e: React.KeyboardEvent) => { if (e.key === 'Escape') { setIsOpen(false); } }; const handleClickOutside = (e: MouseEvent) => { if (dropdownRef.current && !dropdownRef.current.contains(e.target as Node)) { setIsOpen(false); } }; useEffect(() => { const checkMobile = () => { setIsMobile(window.innerWidth < 768); }; checkMobile(); window.addEventListener('resize', checkMobile); document.addEventListener('mousedown', handleClickOutside); return () => { window.removeEventListener('resize', checkMobile); document.removeEventListener('mousedown', handleClickOutside); }; }, []); return (
{/* Dropdown with CSS transitions */}
{languages.map((lang) => ( ))}
); }; export default LanguageSwitcher;