import React, { useState } from 'react';
import { NewsletterPuffButton } from '../newsletter-puff-button/NewsletterPuffButton';
import { NewsletterPuffLink } from '../newsletter-puff-link/NewsletterPuffLink';
import { LoadingOverlay } from '../loading-overlay/LoadingOverlay';
import {
InpCopy,
InpPreferencesContainer,
InpSignupContainer,
InpSignupCTAContainer,
InpSignupHeadline,
InpSubscribedContainer
} from './styles';
import { InpContainer } from '../styles';
type NewsletterProps = {
intersectObserverRef: (ref: HTMLElement | null) => void;
section?: string;
headline: string;
copy: string;
code: string;
subscribeNewsletter: any;
loading?: boolean;
error?: string;
};
export const Newsletter = ({
intersectObserverRef,
section,
headline,
copy,
code,
subscribeNewsletter,
loading,
error
}: NewsletterProps) => {
const [justSubscribed, setJustSubscribed] = useState(false);
const PuffButton = (style: 'link' | 'button') => (
{
if (!loading) {
setJustSubscribed(true);
subscribeNewsletter(`/api/subscribe-newsletter/${code}`);
}
}}
/>
);
return (
{loading && }
{!error &&
justSubscribed && (
You’ve successfully signed up to the{' '}
{`${headline}.`}
)}
{error && (
An error occurred. Please use the link below.
)}
{!justSubscribed &&
!error && (
{headline}
{`${copy} `}
{PuffButton('link')}
{PuffButton('button')}
)}
);
};