/* Round country-flag icons + language dropdown. */
function FlagIcon({ code, size = 22 }) {
const flags = {
us: (
),
br: (
),
pt: (
),
es: (
),
ca: (
),
gb: (
),
};
return (
{flags[code]}
);
}
const BNE_COUNTRIES = [
{ code:'us', name:'United States', lang:'en' },
{ code:'br', name:'Brasil', lang:'pt-br' },
{ code:'pt', name:'Portugal', lang:'pt' },
];
const LANG_TO_CODE = { en:'us', 'pt-br':'br', pt:'pt' };
function LangDropdown({ lang, setLang, up = false, align = 'right' }) {
const [open, setOpen] = useState(false);
const ref = useRef(null);
useEffect(() => {
const h = (e) => { if (ref.current && !ref.current.contains(e.target)) setOpen(false); };
document.addEventListener('pointerdown', h);
return () => document.removeEventListener('pointerdown', h);
}, []);
const cur = BNE_COUNTRIES.find(c => c.code === (LANG_TO_CODE[lang] || 'us')) || BNE_COUNTRIES[0];
const pick = (c) => { setLang(c.lang); setOpen(false); };
return (
{open && (
{BNE_COUNTRIES.map(c => {
const active = c.code === cur.code;
return (
);
})}
)}
);
}
Object.assign(window, { FlagIcon, LangDropdown });