function CookiesNublo() { const { useState, useEffect } = React; const [open, setOpen] = useState(false); const [analytics, setAnalytics] = useState(false); const [marketing, setMarketing] = useState(false); useEffect(() => { const saved = localStorage.getItem("nl-consent"); if (!saved) { setOpen(true); } else { const prefs = JSON.parse(saved); if (typeof prefs.analytics === "boolean") { setAnalytics(prefs.analytics); } if (typeof prefs.marketing === "boolean") { setMarketing(prefs.marketing); } if (prefs.analytics) { loadScript("https://www.googletagmanager.com/gtag/js?id=G-XXXXXXX"); } if (prefs.marketing) { loadScript("https://connect.facebook.net/en_US/fbevents.js"); } } }, []); // Marcar en el DOM cuando el panel está abierto (para usarlo desde CSS) useEffect(() => { if (typeof document === "undefined") return; const root = document.documentElement; if (open) { root.setAttribute("data-cookies-open", "1"); } else { root.removeAttribute("data-cookies-open"); } }, [open]); function loadScript(url) { const s = document.createElement("script"); s.src = url; s.async = true; document.head.appendChild(s); } function applyConsent(prefs) { try { localStorage.setItem("nl-consent", JSON.stringify(prefs)); } catch (e) { // ignore storage errors } try { const root = document.documentElement; // marcar que se han aceptado cookies para animar el icono de WhatsApp root.setAttribute("data-cookies-accepted", "1"); root.removeAttribute("data-cookies-open"); } catch (e) { // ignore DOM errors } // Cerrar panel sin recargar la página setOpen(false); // Aplicar inmediatamente las preferencias opcionales if (prefs.analytics) { loadScript("https://www.googletagmanager.com/gtag/js?id=G-XXXXXXX"); } if (prefs.marketing) { loadScript("https://connect.facebook.net/en_US/fbevents.js"); } // Abrir el popup de lead si está disponible try { if (window.NubloLeadPopup && typeof window.NubloLeadPopup.open === "function") { window.NubloLeadPopup.open(); } } catch (e) { // ignore popup errors } } function acceptAll() { const prefs = { analytics: true, marketing: true }; applyConsent(prefs); } function rejectAll() { const prefs = { analytics: false, marketing: false }; applyConsent(prefs); } function acceptSelected() { const prefs = { analytics, marketing }; applyConsent(prefs); } return ( <> {/* Botón para reabrir */} {!open && ( )} {/* Banner principal */} {open && (
Usamos cookies esenciales para que el sitio funcione y opcionales para{" "} analítica y marketing. Las cookies esenciales no pueden desactivarse, ya que permiten funciones básicas como seguridad, acceso al sitio o recordar tus preferencias técnicas. Puedes leer más en nuestra{" "} política de cookies .