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')}:

{t('alreadyHaveAnAccount')}

) } export default SignUpPage export async function getStaticProps({ locale }) { return { props: { ...(await serverSideTranslations(locale)), }, } }