'use client' import { useEffect } from 'react' // API de consentimiento de Cloudflare Zaraz (se inyecta cuando el dominio pasa // por el proxy de Cloudflare con Zaraz Consent activado). interface ZarazConsent { modal?: boolean APIReady?: boolean setAll?: (status: boolean) => void getAll?: () => Record } declare global { interface Window { zaraz?: { consent?: ZarazConsent } UWCookies?: { showBanner: () => void; revokeConsent: () => void } } } /** Abre el modal de consentimiento de Zaraz. */ function showBanner() { const c = typeof window !== 'undefined' ? window.zaraz?.consent : undefined if (c) c.modal = true else console.warn('[UWCookies] Zaraz no disponible (el sitio debe pasar por Cloudflare con Zaraz Consent activado).') } /** Retira el consentimiento (pone todos los propósitos a false) y reabre el modal. */ function revokeConsent() { const c = typeof window !== 'undefined' ? window.zaraz?.consent : undefined if (c?.setAll) { c.setAll(false) c.modal = true } else { console.warn('[UWCookies] Zaraz no disponible; no se puede retirar el consentimiento.') } } /** * Botones de consentimiento de la página /cookies. Cablean el sistema de * Cloudflare Zaraz y exponen window.UWCookies (showBanner/revokeConsent) para * el resto del sitio. */ export function CookieConsentButtons() { useEffect(() => { window.UWCookies = { showBanner, revokeConsent } }, []) return (
) }