'use client' import { useLocale } from 'next-intl' import { usePathname, useRouter } from '@/i18n/navigation' import { routing } from '@/i18n/routing' import { useState, useRef, useEffect } from 'react' import { useClickOutside } from '@/app/hooks/useClickOutside'; export default function LanguageSwitcher() { const locale = useLocale() const router = useRouter() const pathname = usePathname() const [isOpen, setIsOpen] = useState(false) const dropdownRef = useRef(null) const switchLanguage = (newLocale: string) => { router.replace(pathname, { locale: newLocale }) setIsOpen(false) } useClickOutside(dropdownRef, () => { setIsOpen(false); }); useEffect(() => { const handleEscape = (event: KeyboardEvent) => { if (event.key === 'Escape') setIsOpen(false) } document.addEventListener('keydown', handleEscape) return () => document.removeEventListener('keydown', handleEscape) }, []); return (
{isOpen && (
    {routing.locales.map((lang) => (
  • ))}
)}
) }