Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 | 1x 2x 2x 2x 2x 2x 2x 1x 1x 2x 2x | import Modal from "react-bootstrap/Modal";
import '../../index.css';
import React, { useState, useEffect } from 'react';
const Signup = () => {
const [email, setEmail] = useState('');
const [password1, setPassword1] = useState('');
const [password2, setPassword2] = useState('');
const [errors, setErrors] = useState(false);
const [loading, setLoading] = useState(true);
useEffect(() => {
Iif (localStorage.getItem('token') !== null) {
window.location.replace('/');
} else {
setLoading(false);
}
}, []);
const onSubmit = e => {
e.preventDefault();
const user = {
email: email,
password1: password1,
password2: password2
};
fetch('http://pear-backend-slempp.apps.cloudapps.unc.edu/api/v1/users/auth/register/', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(user)
})
.then(res => res.json())
.then(data => {
if (data.key) {
localStorage.clear();
localStorage.setItem('token', data.key);
window.location.replace('/home');
} else {
setEmail('');
setPassword1('');
setPassword2('');
localStorage.clear();
setErrors(true);
}
});
};
return (
<div>
{loading === false && <h1>Signup</h1>}
{errors === true && <h2>Cannot signup with provided credentials</h2>}
<form onSubmit={onSubmit}>
<label htmlFor='email'>Email address:</label> <br />
<input
name='email'
type='email'
value={email}
onChange={e => setEmail(e.target.value)}
required
/>{' '}
<br />
<label htmlFor='password1'>Password:</label> <br />
<input
name='password1'
type='password'
value={password1}
onChange={e => setPassword1(e.target.value)}
required
/>{' '}
<br />
<label htmlFor='password2'>Confirm password:</label> <br />
<input
name='password2'
type='password'
value={password2}
onChange={e => setPassword2(e.target.value)}
required
/>{' '}
<br />
<input type='submit' value='Signup' />
</form>
</div>
);
};
export default Signup;
|