// Context import { LoadingStatusContext } from 'shared/context/loading-status-context.mjs' // Verification methods import { validateEmail, validateTld } from 'shared/utils.mjs' // Hooks import { useState, useContext } from 'react' import { useTranslation } from 'next-i18next' import { useAccount } from 'shared/hooks/use-account.mjs' import { useBackend } from 'shared/hooks/use-backend.mjs' import { EmailInput } from 'shared/components/inputs.mjs' // Components import { NewsletterSettings } from 'shared/components/account/newsletter.mjs' export const ns = ['newsletter', 'account'] export const SubscribeToNewsletter = ({ hideWhenSubscribed = false }) => { const { t, i18n } = useTranslation(ns) const { language } = i18n const { setLoadingStatus } = useContext(LoadingStatusContext) const { account } = useAccount() const backend = useBackend() // State const [email, setEmail] = useState('') const [sent, setSent] = useState(false) const subscribe = async () => { setLoadingStatus([true, 'contactingBackend']) let result try { result = await backend.newsletterSubscribe({ email, language }) if (result.success) { setSent(true) setLoadingStatus([true, 'nailedIt', true, true]) } else setLoadingStatus([true, 'backendError', true, true]) } catch (err) { setLoadingStatus([true, 'backendError', true, true]) } } // Is email valid? const valid = (validateEmail(email) && validateTld(email)) || false if (account.newsletter && hideWhenSubscribed) return
note
//null if (account.username) return{t('newsletter:checkInbox', { email })}
> ) return (