"use client"; import { useState, useRef, useEffect } from "react"; import { useLanguage, type Locale } from "../hooks/useLanguage"; import { sharedStyles } from "../styles/shared"; const LANGUAGES: Array<{ code: Locale; name: string; flag: string }> = [ { code: "es", name: "Español", flag: "🇪🇸" }, { code: "en", name: "English", flag: "🇬🇧" }, { code: "ca", name: "Català", flag: "🇪🇸" }, ]; export function LanguageSelector() { const { locale, setLocale } = useLanguage(); const [isOpen, setIsOpen] = useState(false); const dropdownRef = useRef(null); useEffect(() => { const handleClickOutside = (event: MouseEvent) => { if (dropdownRef.current && !dropdownRef.current.contains(event.target as Node)) { setIsOpen(false); } }; if (isOpen) { document.addEventListener("mousedown", handleClickOutside); } return () => { document.removeEventListener("mousedown", handleClickOutside); }; }, [isOpen]); const currentLanguage = LANGUAGES.find((lang) => lang.code === locale); return (
{isOpen && (
{LANGUAGES.map((lang) => ( ))}
)}
); }