// Aviso de cookies. Hoy el sitio solo guarda preferencias técnicas, así que el aviso
// es informativo y NO bloquea la navegación. Si algún día se añade analítica, cambia
// `REQUIERE_CONSENTIMIENTO` a true y activa la herramienta solo cuando
// window.BI_CONSENT.analitica sea true.
const REQUIERE_CONSENTIMIENTO = false;
const CLAVE_CONSENT = 'bi_consentimiento';
const VIGENCIA_MS = 365 * 24 * 60 * 60 * 1000;

function leerConsentimiento() {
  try {
    const raw = localStorage.getItem(CLAVE_CONSENT);
    if (!raw) return null;
    const c = JSON.parse(raw);
    if (!c || !c.fecha || Date.now() - c.fecha > VIGENCIA_MS) return null;
    return c;
  } catch (e) { return null; }
}

function CookieBanner() {
  const [visible, setVisible] = React.useState(false);

  React.useEffect(() => {
    const guardado = leerConsentimiento();
    window.BI_CONSENT = guardado || { analitica: false };
    if (!guardado) setVisible(true);
    // El pie de página puede reabrir el aviso.
    window.BI_abrirCookies = () => setVisible(true);
    return () => { delete window.BI_abrirCookies; };
  }, []);

  React.useEffect(() => {
    document.body.classList.toggle('cookies-abierto', visible);
    return () => document.body.classList.remove('cookies-abierto');
  }, [visible]);

  const decidir = (analitica) => {
    const c = { v: 1, analitica, fecha: Date.now() };
    try { localStorage.setItem(CLAVE_CONSENT, JSON.stringify(c)); } catch (e) { /* sin almacenamiento */ }
    window.BI_CONSENT = c;
    window.dispatchEvent(new CustomEvent('bi:consentimiento', { detail: c }));
    setVisible(false);
  };

  if (!visible) return null;

  return (
    <div className="bi-cookies" role="dialog" aria-label="Aviso de cookies">
      <div className="bi-cookies-card">
        <div className="bi-cookies-kicker">Cookies</div>
        <p className="bi-cookies-text">
          Este sitio no usa cookies publicitarias ni de seguimiento. Solo guarda en tu navegador la moneda que eliges y esta misma decisión.{' '}
          <a href="legal/cookies.html">Leer la política</a>.
        </p>
        <div className="bi-cookies-acciones">
          <button type="button" onClick={() => decidir(true)} className="bi-cookies-ok">Entendido</button>
          <button type="button" onClick={() => decidir(false)} className="bi-cookies-min">Solo lo esencial</button>
        </div>
      </div>
    </div>
  );
}

Object.assign(window, { CookieBanner });
