/* ============================================================ COOKIES BANNER — RGPD (UE) + LGPD (Brésil) Affiche une bannière discrète en bas de l'écran tant que l'utilisateur n'a pas fait de choix. Persiste dans localStorage sous la clé "omega.cookies". ============================================================ */ const COOKIE_KEY = "omega.cookies.v1"; function readCookieChoice() { try { const raw = localStorage.getItem(COOKIE_KEY); if (!raw) return null; return JSON.parse(raw); } catch (_) { return null; } } function writeCookieChoice(choice) { try { localStorage.setItem(COOKIE_KEY, JSON.stringify({ ...choice, timestamp: Date.now(), version: 1, })); } catch (_) {} } window.getCookieConsent = readCookieChoice; window.hasCookieConsent = (cat) => { const c = readCookieChoice(); if (!c) return false; if (cat === "essential") return true; // always allowed return !!c[cat]; }; function CookiesBanner() { const [t] = window.useT(); const [visible, setVisible] = React.useState(() => readCookieChoice() === null); const [shown, setShown] = React.useState(false); const [showDetails, setShowDetails] = React.useState(false); const [analytics, setAnalytics] = React.useState(false); const [marketing, setMarketing] = React.useState(false); React.useEffect(() => { if (visible) { const id = requestAnimationFrame(() => setShown(true)); return () => cancelAnimationFrame(id); } else { setShown(false); } }, [visible]); // Allow reopening from external link (e.g., footer "Cookies" link) React.useEffect(() => { const handler = () => { const existing = readCookieChoice(); if (existing) { setAnalytics(!!existing.analytics); setMarketing(!!existing.marketing); } setShowDetails(true); setVisible(true); }; window.__omegaOpenCookies = handler; window.addEventListener("omega:cookies:open", handler); return () => { delete window.__omegaOpenCookies; window.removeEventListener("omega:cookies:open", handler); }; }, []); if (!visible) return null; const acceptAll = () => { writeCookieChoice({ essential: true, analytics: true, marketing: true }); setVisible(false); }; const essentialOnly = () => { writeCookieChoice({ essential: true, analytics: false, marketing: false }); setVisible(false); }; const saveChoices = () => { writeCookieChoice({ essential: true, analytics, marketing }); setVisible(false); }; return (
{!showDetails ? ( <>
{t("cookies.title")}

{t("cookies.body")} {" "} { e.preventDefault(); window.__omegaGo && window.__omegaGo("policies", "privacy"); }} > {t("cookies.policyLink")}

) : ( <>
{t("cookies.detailsTitle")}

{t("cookies.detailsIntro")}

{t("cookies.cat.essential")}
{t("cookies.cat.essentialDesc")}
{t("cookies.always")}
{t("cookies.cat.analytics")}
{t("cookies.cat.analyticsDesc")}
{t("cookies.cat.marketing")}
{t("cookies.cat.marketingDesc")}
)}
); } window.CookiesBanner = CookiesBanner;