'use client' import { useEffect, useRef, useState } from 'react' import { useLocale } from 'next-intl' import { useRouter, usePathname } from '@/navigation' import { routing } from '@/i18n/routing' const LANGUAGE_LABELS: Record = { en: 'English', fr: 'Français', es: 'Español', it: 'Italiano', } function Flag({ locale, className }: { locale: string; className?: string }) { return ( ) } function ChevronIcon() { return ( ) } export function LanguageSwitcher() { const locale = useLocale() const router = useRouter() const pathname = usePathname() const [open, setOpen] = useState(false) const containerRef = useRef(null) useEffect(() => { if (!open) return function handlePointerDown(event: MouseEvent) { if (containerRef.current && !containerRef.current.contains(event.target as Node)) { setOpen(false) } } function handleKeyDown(event: KeyboardEvent) { if (event.key === 'Escape') setOpen(false) } document.addEventListener('mousedown', handlePointerDown) document.addEventListener('keydown', handleKeyDown) return () => { document.removeEventListener('mousedown', handlePointerDown) document.removeEventListener('keydown', handleKeyDown) } }, [open]) function selectLocale(loc: string) { setOpen(false) router.replace(pathname, { locale: loc }) } return (
{open && (
    {routing.locales.map((loc) => (
  • ))}
)}
) }