// ============================================================ // Tribeca Lisboa — NEWS ARTICLE app (responsive, bilingual) // Uses shared SiteHeader / SiteMenuDrawer + global lang. // ============================================================ const { useState: useStateNA, useRef: useRefNA } = React; function NaToast({ msg, icon, show }) { return
{icon && }{msg}
; } function NewsArticleInner() { const lang = React.useContext(LangContext); const rootRef = useRefNA(null); const [menu, setMenu] = useStateNA(false); const [toast, setToast] = useStateNA(null); const toastTimer = useRefNA(null); useReveal(rootRef); const flashToast = (msg, icon) => { setToast({ msg, icon }); clearTimeout(toastTimer.current); toastTimer.current = setTimeout(() => setToast(null), 2200); }; return (
setMenu(true)} />
setMenu(false)} />
); } function NewsArticle() { const [lang] = useLang(); return ( ); } ReactDOM.createRoot(document.getElementById('root')).render();