import React, { useState } from 'react'; import { useLanguage } from '@avanzacast/shared-hooks'; import type { SupportedLanguage } from '@avanzacast/shared-types'; interface LanguageSelectorProps { className?: string; variant?: 'dropdown' | 'flags'; position?: 'left' | 'right'; } /** * Componente compartido para selector de idioma * Puede ser usado en landing-page, broadcast-studio y admin-panel */ export function LanguageSelector({ className = '', variant = 'dropdown', position = 'right' }: LanguageSelectorProps) { const { language, availableLanguages, setLanguage } = useLanguage(); const [isOpen, setIsOpen] = useState(false); const currentLanguage = availableLanguages.find(lang => lang.code === language); const handleLanguageChange = (code: SupportedLanguage) => { setLanguage(code); setIsOpen(false); }; if (variant === 'flags') { return (
{availableLanguages.map((lang) => ( ))}
); } return (
{isOpen && ( <> {/* Overlay para cerrar */}
setIsOpen(false)} aria-hidden="true" /> {/* Dropdown menu */}
{availableLanguages.map((lang) => ( ))}
)}
); }