/* ─────────────────────────────────────────────
   Waitlist strip — real localStorage, no fake counts.
   Identity: ink slab w/ paper text, curatorial copy.
   ───────────────────────────────────────────── */

const FORMSPREE = 'https://formspree.io/f/xvzyvvej';

window.WaitlistStrip = function () {
  const [email, setEmail] = React.useState('');
  const [done, setDone]   = React.useState(false);
  const [err, setErr]     = React.useState('');
  const [loading, setLoading] = React.useState(false);

  function submit(e) {
    e.preventDefault();
    setErr('');
    const v = email.trim();
    if (!v) return;
    if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(v)) {
      setErr('INVALID FORMAT'); return;
    }
    setLoading(true);
    fetch(FORMSPREE, {
      method: 'POST',
      headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' },
      body: JSON.stringify({ email: v })
    })
      .then(r => r.json())
      .then(data => {
        if (data.ok || data.next) { setDone(true); }
        else { setErr('SUBMIT FAILED · TRY AGAIN'); }
      })
      .catch(() => setErr('NETWORK ERROR · TRY AGAIN'))
      .finally(() => setLoading(false));
  }

  return React.createElement('div', { className: 'waitlist-strip' },
    React.createElement('div', { className: 'ws-copy' },
      window.InoculateWordmark
        ? React.createElement(window.InoculateWordmark, { size: 26, dark: true })
        : null,
      React.createElement('div', { className: 'ws-eyebrow' },
        React.createElement('span', { className: 'dot' }),
        'COLLECTION OPEN ' + new Date().toISOString().slice(0, 10).replace(/-/g, '·')
      ),
      React.createElement('h3', null,
        'Request ',
        React.createElement('em', null, 'early access.')
      )
    ),
    done
      ? React.createElement('div', { className: 'ws-success' }, 'joined waitlist.')
      : React.createElement('div', null,
          React.createElement('form', { onSubmit: submit },
            React.createElement('input', {
              type: 'email',
              placeholder: 'EMAIL',
              value: email,
              onChange: e => { setEmail(e.target.value); setErr(''); },
              autoComplete: 'email'
            }),
            React.createElement('button', { type: 'submit', className: 'ws-btn' },
              'JOIN'
            )
          ),
          err && React.createElement('div', { className: 'ws-error' }, '✗ ' + err)
        )
  );
};
