diff --git a/src/app/layouts/PageLayout/NewsletterOverlay/NewsletterOverlay.tsx b/src/app/layouts/PageLayout/NewsletterOverlay/NewsletterOverlay.tsx index 303c34fc5..c9696f656 100644 --- a/src/app/layouts/PageLayout/NewsletterOverlay/NewsletterOverlay.tsx +++ b/src/app/layouts/PageLayout/NewsletterOverlay/NewsletterOverlay.tsx @@ -1,4 +1,4 @@ -import React, { FC, useMemo, useState } from 'react'; +import React, { FC, useEffect, useMemo, useState } from 'react'; import classNames from 'clsx'; import { useForm } from 'react-hook-form'; @@ -10,6 +10,7 @@ import Spinner from 'app/atoms/Spinner/Spinner'; import { useAppEnv } from 'app/env'; import { ReactComponent as CloseIcon } from 'app/icons/close.svg'; import ContentContainer from 'app/layouts/ContentContainer'; +import { useOnboardingProgress } from 'app/pages/Onboarding/hooks/useOnboardingProgress.hook'; import { shouldShowNewsletterModalAction } from 'app/store/newsletter/newsletter-actions'; import { useShouldShowNewsletterModalSelector } from 'app/store/newsletter/newsletter-selectors'; import { useOnRampPossibilitySelector } from 'app/store/settings/selectors'; @@ -30,9 +31,18 @@ const validationSchema = object().shape({ export const NewsletterOverlay: FC = () => { const dispatch = useDispatch(); const { popup } = useAppEnv(); + const { onboardingCompleted } = useOnboardingProgress(); const shouldShowNewsletterModal = useShouldShowNewsletterModalSelector(); const isOnRampPossibility = useOnRampPossibilitySelector(); + useEffect(() => { + if (shouldShowNewsletterModal) { + document.body.style.overflow = 'hidden'; + } else { + document.body.style.overflow = 'auto'; + } + }, [shouldShowNewsletterModal]); + const validationResolver = useYupValidationResolver(validationSchema); const { errors, handleSubmit, watch, register } = useForm({ @@ -49,6 +59,7 @@ export const NewsletterOverlay: FC = () => { () => (popup ? 'inset-0 p-4' : 'top-1/2 left-1/2 transform -translate-y-1/2 -translate-x-1/2'), [popup] ); + const closeButtonClassName = useMemo(() => (popup ? 'top-8 right-8' : 'top-4 right-4'), [popup]); const close = () => void dispatch(shouldShowNewsletterModalAction(false)); const onSubmit = () => { @@ -77,38 +88,44 @@ export const NewsletterOverlay: FC = () => { return 'Subscribe'; }, [successSubscribing, isLoading]); - if (!shouldShowNewsletterModal || isOnRampPossibility) return null; + if (!shouldShowNewsletterModal || !onboardingCompleted || isOnRampPossibility) return null; return ( <>
- Newsletter + Newsletter

{t('subscribeToNewsletter')}

{t('keepLatestNews')} @@ -116,7 +133,7 @@ export const NewsletterOverlay: FC = () => { {!isValid &&
{errors.email?.message}
} diff --git a/tailwind.config.js b/tailwind.config.js index 97c9fe6ff..01c5e6fe3 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -338,6 +338,7 @@ module.exports = { auto: 'auto', ...theme('spacing'), 12: '3rem', + 700: '700px', full: '100%', screen: '100vh' }), @@ -388,6 +389,7 @@ module.exports = { }), maxHeight: { full: '100%', + '3/25': '52px', screen: '100vh' }, maxWidth: (theme, { breakpoints }) => ({ @@ -485,6 +487,8 @@ module.exports = { '9/12': '75%', '10/12': '83.333333%', '11/12': '91.666667%', + 3.5: '52px', + 4.5: '72px', full: '100%' }), placeholderColor: theme => theme('colors'),