// Legal pages (privacy + cookies) and the site-wide cookie banner. // Light kit for a site that collects no personal data server-side. // RO is primary; a small in-page toggle mirrors to EN. Persisted via blogLang. // Resolve {operator}/{regcom}/{cui}/{address}/{privacyEmail} placeholders in copy. function fillLegal(str, op) { return (str || "") .replace(/\{operator\}/g, op.name) .replace(/\{regcom\}/g, op.regcom) .replace(/\{cui\}/g, op.cui) .replace(/\{address\}/g, op.address) .replace(/\{privacyEmail\}/g, op.privacyEmail); } function LegalLangToggle({ lang, onPick }) { return (
{["ro", "en"].map((l) => ( ))}
); } function LegalSection({ s, op }) { return (

{s.h}

{(s.p || []).map((para, i) => (

{fillLegal(para, op)}

))} {s.list && ( )}
); } // which: "privacy" | "cookies" function LegalPage({ which }) { const L = window.LEGAL || {}; const op = L.operator || {}; const [lang, setLang] = React.useState(() => { try { return localStorage.getItem("blogLang") === "en" ? "en" : "ro"; } catch (e) { return "ro"; } }); const pick = (l) => { setLang(l); try { localStorage.setItem("blogLang", l); } catch (e) {} }; const t = L[lang] || L.ro || {}; const doc = (which === "cookies" ? t.cookies : t.privacy) || {}; const otherHref = which === "cookies" ? "/privacy" : "/cookies"; const otherLabel = which === "cookies" ? (lang === "ro" ? "Politică de confidențialitate" : "Privacy notice") : (lang === "ro" ? "Politică de cookies" : "Cookie notice"); return (
{doc.eyebrow}

{doc.title}

{doc.lead}

{t.updated}
{(doc.sections || []).map((s, i) => )}

{op.name} · {op.regcom} · CUI {op.cui} · {op.address}

{ e.preventDefault(); goTo(otherHref); }}> {otherLabel}

); } // Site-wide cookie notice banner. Honest, dismissible, not a tracking wall. function CookieBanner() { const L = window.LEGAL || {}; const [acked, setAcked] = React.useState(() => { try { return localStorage.getItem("cookieNoticeAck") === "1"; } catch (e) { return true; } // if storage is blocked, don't nag }); // Banner language follows the same blogLang preference; default RO. const lang = (() => { try { return localStorage.getItem("blogLang") === "en" ? "en" : "ro"; } catch (e) { return "ro"; } })(); const b = ((L[lang] || L.ro || {}).banner) || {}; const dismiss = () => { try { localStorage.setItem("cookieNoticeAck", "1"); } catch (e) {} setAcked(true); }; if (acked || !b.text) return null; return (

{b.text}

{ e.preventDefault(); goTo("/cookies"); }}> {b.policy}
); } Object.assign(window, { LegalPage, CookieBanner });