import React, { useMemo, useState } from 'react'; import { GetNewsletter } from '@times-components/provider'; import { Placeholder } from '@times-components/image'; import { capitalise } from '@times-components/utils'; import { Newsletter } from './newsletter/Newsletter'; import { TrackingContextProvider } from '../../helpers/tracking/TrackingContextProvider'; import { InpContainer } from './styles'; import { FetchProvider } from '../../helpers/fetch/FetchProvider'; import { ContentProvider } from '../save-star/ContentProvider'; type InlineNewsletterPuffProps = { copy: string; headline: string; section: string; code: string; }; export const InlineNewsletterPuff = ({ code, copy, headline, section }: InlineNewsletterPuffProps) => { const [url, setUrl] = useState( `/api/is-subscribed-newsletter/${code}` ); const fetchOptions = useMemo(() => ({ credentials: 'same-origin' }), []); return ( {({ isLoading, error, newsletter }: any) => { if (error) { return null; } if (isLoading || !newsletter) { return ( ); } if (newsletter.isSubscribed) { return null; } return ( {({ intersectObserverRef }) => ( )} ); }} ); };