import { Button, Input, Typography } from 'antd'; import signup from 'api/user/signup'; import { IS_LOGGED_IN } from 'constants/auth'; import ROUTES from 'constants/routes'; import history from 'lib/history'; import React, { useState } from 'react'; import { ButtonContainer, Container, FormWrapper, Title } from './styles'; const Signup = (): JSX.Element => { const [state, setState] = useState({ submitted: false }); const [formState, setFormState] = useState({ firstName: { value: '' }, companyName: { value: '' }, email: { value: '' }, password: { value: '', valid: true }, emailOptIn: { value: true }, }); const updateForm = ( name: string, target: EventTarget & HTMLInputElement, ): void => { if (name === 'firstName') { setFormState({ ...formState, firstName: { ...formState.firstName, value: target.value }, }); } else if (name === 'email') { setFormState({ ...formState, email: { ...formState.email, value: target.value }, }); } }; const handleSubmit = (e: React.FormEvent): void => { (async (): Promise => { try { e.preventDefault(); setState((state) => ({ ...state, submitted: true })); const payload = { first_name: formState.firstName, email: formState.email, }; const response = await signup({ email: JSON.stringify(payload), }); if (response.statusCode === 200) { localStorage.setItem(IS_LOGGED_IN, 'yes'); history.push(ROUTES.APPLICATION); } else { // @TODO throw a error notification here } } catch (error) { console.error(error); // @TODO throw a error notification here } })(); }; return (
Create your account Monitor your applications. Find what is causing issues. logo
updateForm('email', e.target)} required id="signupEmail" />
updateForm('firstName', e.target)} required id="signupFirstName" />
); }; export default Signup;