/* global React, AylaNewsletter */
const { useEffect, useRef } = React;

function NewsletterSignup({ variant }) {
  const cfg = (window.AylaNewsletter && window.AylaNewsletter.config()) || {};
  const useEmbed = !!(cfg.useEmbedForm && cfg.embedScriptSrc);
  const url = (window.AylaNewsletter && window.AylaNewsletter.subscribeUrl()) || '';
  const embedRef = useRef(null);

  useEffect(function () {
    if (useEmbed && embedRef.current && window.AylaNewsletter) {
      window.AylaNewsletter.loadEmbed(embedRef.current);
    }
  }, [useEmbed]);

  const cta = url ? (
    <a className="btn" href={url} target="_blank" rel="noopener noreferrer">
      Subscribe <span className="arr">→</span>
    </a>
  ) : (
    <p className="newsletter-status">Newsletter signup is not configured yet.</p>
  );

  if (variant === 'footer') {
    return (
      <div className="footer-newsletter">
        <h6>Stay in touch</h6>
        <p>Join the Ayla newsletter for the latest research, practical tips, and behind-the-scenes updates as we build Ayla Wellness.</p>
        {useEmbed ? (
          <div className="newsletter-embed" ref={embedRef} />
        ) : (
          cta
        )}
      </div>
    );
  }

  return (
    <div className="signup reveal">
      <div>
        <span className="eyebrow">The Ayla newsletter</span>
        <h2 style={{ marginTop: 18 }}>
          Stay close to what we're <span className="it">learning.</span>
        </h2>
        <p>
          A weekly newsletter with the latest research, practical tips on hormones and cycles, and
          behind-the-scenes notes as we build Ayla Wellness. Unsubscribe anytime.
        </p>
      </div>
      {useEmbed ? (
        <div className="newsletter-embed" ref={embedRef} />
      ) : (
        <div className="signup-action">{cta}</div>
      )}
    </div>
  );
}

window.NewsletterSignup = NewsletterSignup;
