// CookieBanner.jsx — bandeau de consentement cookies, minimal et honnête :
// le site n'utilise que des cookies essentiels (aucun suivi publicitaire).
// Persisté en localStorage — n'apparaît qu'une fois par navigateur.

const STORAGE_KEY = 'b2a-cookie-consent';

const cookieBannerStyles = {
  bar: {
    position: 'fixed',
    left: 0,
    right: 0,
    bottom: 0,
    zIndex: 95,
    background: 'var(--ink-900)',
    color: 'var(--paper)',
    borderTop: '1px solid var(--amber-500)',
    boxShadow: '0 -4px 0 0 rgba(0,0,0,.08)',
  },
  inner: {
    display: 'flex',
    alignItems: 'center',
    justifyContent: 'space-between',
    gap: 24,
    flexWrap: 'wrap',
    padding: '16px 0',
  },
  text: {
    fontSize: 13.5,
    lineHeight: 1.5,
    color: 'var(--mist-200)',
    margin: 0,
    maxWidth: 640,
  },
  actions: { flexShrink: 0 },
};

/**
 * @param {Object} p
 * @param {(visible: boolean) => void} [p.onVisibilityChange] — permet à la
 *   page (ex. bouton « retour en haut ») de se décaler pendant que le
 *   bandeau est affiché.
 */
const CookieBanner = ({ onVisibilityChange }) => {
  const [visible, setVisible] = React.useState(false);

  React.useEffect(() => {
    let show = false;
    try {
      show = window.localStorage.getItem(STORAGE_KEY) !== '1';
    } catch (e) {
      show = true; // localStorage indisponible (navigation privée stricte) : on affiche par prudence
    }
    setVisible(show);
    if (onVisibilityChange) onVisibilityChange(show);
  }, []);

  const accept = () => {
    try { window.localStorage.setItem(STORAGE_KEY, '1'); } catch (e) { /* ignore */ }
    setVisible(false);
    if (onVisibilityChange) onVisibilityChange(false);
  };

  if (!visible) return null;

  return (
    <div style={cookieBannerStyles.bar} role="region" aria-label="Consentement cookies">
      <div className="b2a-container" style={cookieBannerStyles.inner}>
        <p style={cookieBannerStyles.text}>
          Ce site utilise uniquement des cookies essentiels à son bon fonctionnement —
          aucun suivi publicitaire, aucune revente de données.
        </p>
        <div style={cookieBannerStyles.actions}>
          <button type="button" className="b2a-btn b2a-btn-primary b2a-btn-sm" onClick={accept}>
            Compris
          </button>
        </div>
      </div>
    </div>
  );
};

window.CookieBanner = CookieBanner;
