From 4ebe3c34d318ab8f036f523897d9fdc38291632c Mon Sep 17 00:00:00 2001 From: adevopg Date: Mon, 13 Jul 2026 11:58:54 +0000 Subject: [PATCH] web-next: banner de consentimiento de cookies + estado de la API (Zaraz) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Banner real `uw-cookie-content` (Rechazar/Personalizar/Aceptar todas) fijo abajo y site-wide (montado en el layout, componente CookieBanner). Aparece en la primera visita, guarda la decisión en la cookie uw_cookie_consent (1 año) y se sincroniza con Cloudflare Zaraz si está presente (zaraz.consent.setAll / .modal). Estilos en globals.css. - «Personalizar» abre el modal granular de Zaraz (o /cookies si no hay Zaraz). - window.UWCookies {showBanner, revokeConsent, acceptAll, rejectAll}. - Página /cookies: panel «Tu estado de consentimiento» (ConsentStatus) que muestra los datos EN VIVO de la API de Zaraz (zaraz.consent.getAll()) por propósito; si Zaraz no está, cae a la preferencia guardada por categoría. Verificado con navegador: el banner aparece, «Aceptar todas» lo oculta y escribe la cookie, y el panel de /cookies refleja el estado. Co-Authored-By: Claude Opus 4.8 (1M context) --- web-next/app/[locale]/cookies/page.tsx | 3 +- web-next/app/[locale]/layout.tsx | 2 + web-next/app/globals.css | 102 ++++++++++++ web-next/components/CookieConsent.tsx | 214 ++++++++++++++++++++++--- 4 files changed, 298 insertions(+), 23 deletions(-) diff --git a/web-next/app/[locale]/cookies/page.tsx b/web-next/app/[locale]/cookies/page.tsx index c76924d..0150fdb 100644 --- a/web-next/app/[locale]/cookies/page.tsx +++ b/web-next/app/[locale]/cookies/page.tsx @@ -1,6 +1,6 @@ import type { Metadata } from 'next' import { Link } from '@/i18n/navigation' -import { CookieConsentButtons } from '@/components/CookieConsent' +import { CookieConsentButtons, ConsentStatus } from '@/components/CookieConsent' export const metadata: Metadata = { title: 'Declaración de Cookies', @@ -163,6 +163,7 @@ export default function CookiesPage() { Tu estado de consentimiento

Puedes cambiar o retirar tu consentimiento en cualquier momento. Al contactarnos respecto a su consentimiento, por favor, indique la fecha de su consentimiento.

+

diff --git a/web-next/app/[locale]/layout.tsx b/web-next/app/[locale]/layout.tsx index 81a6295..728c873 100644 --- a/web-next/app/[locale]/layout.tsx +++ b/web-next/app/[locale]/layout.tsx @@ -7,6 +7,7 @@ import { Header } from '@/components/Header' import { Video } from '@/components/Video' import { Social } from '@/components/Social' import { Footer } from '@/components/Footer' +import { CookieBanner } from '@/components/CookieConsent' import '../globals.css' export function generateStaticParams() { @@ -73,6 +74,7 @@ export default async function LocaleLayout({ {children}