{txt}
; if (b.t === 'quote') return{txt}; return
{txt}
; })} {ARTICLE.external && ( )}// ============================================================ // Tribeca Lisboa — NEWS ARTICLE sections (responsive) // Reuses: EIcon + useReveal + EdGuestCard (EventSections), // REventCard (ResponsiveSections), CAT + R (Primitives). // ============================================================ const { useRef: useRefN, useState: useStateN } = React; // ---- Social share row (editorial, inline) ------------------- function NewsShare() { const lang = React.useContext(LangContext); const [copied, setCopied] = useStateN(false); // Real share targets (operator, 2026-09-30 link check: these were placeholder "#" links and // "Link copiado" was shown without copying). URL = this page without the hash. const url = String(location.href).split('#')[0]; const title = tt(lang, (window.ARTICLE && (ARTICLE.titleEn || ARTICLE.title)) || document.title, (window.ARTICLE && ARTICLE.title) || document.title); const copy = () => { const done = () => { setCopied(true); setTimeout(() => setCopied(false), 1600); }; try { navigator.clipboard.writeText(url).then(done, () => {}); } catch (e) {} }; // Instagram has no web share URL: the system share sheet (phones) offers it; else copy the link. const shareInstagram = () => { if (navigator.share) { navigator.share({ title, url }).catch(() => {}); return; } copy(); }; const links = [ { name: 'WhatsApp', icon: 'wa', href: 'https://wa.me/?text=' + encodeURIComponent(title + ' ' + url) }, { name: 'X', icon: 'xlogo', href: 'https://twitter.com/intent/tweet?text=' + encodeURIComponent(title) + '&url=' + encodeURIComponent(url) }, ]; return (
{tt(lang, ARTICLE.dekEn, ARTICLE.dek)}
{txt}; return
{txt}
; })} {ARTICLE.external && ( )}