import { useContext, useState } from 'react'; import { useNavigate } from 'react-router'; import { AuthContext } from '../../utils/auth_context'; import { Paper } from '../common/paper'; import { Input } from '../common/input'; import { Button } from '../common/button'; export const SignUp = () => { const [, setAuthToken] = useContext(AuthContext); const navigate = useNavigate(); const [name, setName] = useState(''); const [email, setEmail] = useState(''); const [emailConfirmation, setEmailConfirmation] = useState(''); const [password, setPassword] = useState(''); const [passwordConfiramation, setPasswordConfirmation] = useState(''); const [errorMessage, setErrorMessage] = useState(''); const signUp = async () => { if (email === '') { setErrorMessage('Email cannot be blank'); return; } if (email !== emailConfirmation) { setErrorMessage('Email does not match.'); return; } if (password === '') { setErrorMessage('Password cannot be blank'); return; } if (password !== passwordConfiramation) { setErrorMessage('Password does not match'); return; } if (name === '') { setErrorMessage('Name cannot be blank.'); return; } const res = await fetch('/users', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ name, email, password, }), }); if (res.status === 201) { const result = await res.json(); setAuthToken(result.token); navigate('/'); } }; return (
Name
setName(e.target.value)} />
Email
setEmail(e.target.value)} />
Confirm Email
setEmailConfirmation(e.target.value)} />
Password
setPassword(e.target.value)} />
Confirm Password
setPasswordConfirmation(e.target.value)} />
{errorMessage}
); };