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), })} validateOnChange={false} validateOnBlur={false} onSubmit={loginUser} > {({ values, errors, touched, handleChange, handleSubmit, }) => (
{errors.email} )}
); }