import Page from 'site/components/wrappers/page.js' import useApp from 'site/hooks/useApp.js' import Popout from 'shared/components/popout.js' import { serverSideTranslations } from 'next-i18next/serverSideTranslations' import { useTranslation } from 'next-i18next' import Layout from 'site/components/layouts/bare' import Link from 'next/link' import { useState } from 'react' import { validateEmail, validateTld } from 'shared/utils.mjs' import SusiWrapper from 'site/components/wrappers/susi.js' import { signUp } from 'shared/backend.mjs' const DarkLink = ({ href, txt }) => ( {txt} ) const SignUpPage = () => { const app = useApp() const { t } = useTranslation(['susi']) const [email, setEmail] = useState('') const [emailValid, setEmailValid] = useState(false) const updateEmail = (evt) => { const value = evt.target.value setEmail(value) const valid = (validateEmail(value) && validateTld(value)) || false setEmailValid(valid === true ? true : false) } const signupHandler = async (evt) => { evt.preventDefault() if (emailValid) await signUp({ email, language: app.locale, ...app.loadHelpers, }) } return ( {t('joinFreeSewing')}! {t('toReceiveSignupLink')}: {emailValid ? ( {t('emailSignupLink')} ) : ( {t('pleaseProvideValidEmail')} )} {t('alreadyHaveAnAccount')} ) } export default SignUpPage export async function getStaticProps({ locale }) { return { props: { ...(await serverSideTranslations(locale)), }, } }
{t('toReceiveSignupLink')}:
{t('alreadyHaveAnAccount')}