import React, { useState, useEffect } from 'react'; import { useRouter } from 'next/router'; import Card from 'react-bootstrap/Card'; import Form from 'react-bootstrap/Form'; import FormControl from 'react-bootstrap/FormControl'; import Button from 'react-bootstrap/Button'; import constants from 'utils/strings/constants'; import { Formik, FormikHelpers } from 'formik'; import * as Yup from 'yup'; import { getOtt } from 'services/userService'; import Container from 'components/Container'; import { setData, LS_KEYS, getData } from 'utils/storage/localStorage'; import SubmitButton from 'components/SubmitButton'; interface formValues { email: string; } export default function Home() { const [loading, setLoading] = useState(false); const router = useRouter(); useEffect(() => { router.prefetch('/verify'); router.prefetch('/signup'); const user = getData(LS_KEYS.USER); if (user?.email) { router.push('/verify'); } }, []); const loginUser = async ( { email }: formValues, { setFieldError }: FormikHelpers ) => { try { setLoading(true); await getOtt(email); setData(LS_KEYS.USER, { email }); router.push('/verify'); } catch (e) { setFieldError('email', `${constants.UNKNOWN_ERROR} ${e.message}`); } setLoading(false); }; const register = () => { router.push('/signup'); }; return ( {constants.LOGIN} initialValues={{ email: '' }} validationSchema={Yup.object().shape({ email: Yup.string() .email(constants.EMAIL_ERROR) .required(constants.REQUIRED), })} onSubmit={loginUser} > {({ values, errors, touched, handleChange, handleBlur, handleSubmit, }) => (
{errors.email} )}
{constants.NO_ACCOUNT}
); }