diff --git a/src/components/TimezonePicker.js b/src/components/TimezonePicker.js index fc3163b..c16cf4c 100644 --- a/src/components/TimezonePicker.js +++ b/src/components/TimezonePicker.js @@ -1,11 +1,13 @@ -import React, { useState } from 'react'; +import React from 'react'; import { InputPicker } from 'rsuite'; import { timezones } from '../assets/data/timezonesFlat'; -export default function TimezonePicker() { - const [timezone, setTimezone] = useState(''); - +export default function TimezonePicker({ + handleSelect, + handleClean, + timezone, +}) { return ( setTimezone(item.timezone)} - onClean={(event) => setTimezone('')} + onSelect={handleSelect} + onClean={handleClean} value={timezone} valueKey='timezone' /> diff --git a/src/screens/Register.js b/src/screens/Register.js index 4a9ff70..61e3a8a 100644 --- a/src/screens/Register.js +++ b/src/screens/Register.js @@ -1,4 +1,6 @@ -import React from 'react'; +import React, { useState } from 'react'; +import { Redirect } from 'react-router-dom'; + import { Form, FormGroup, @@ -7,38 +9,112 @@ import { HelpBlock, Button, Panel, + Message, } from 'rsuite'; import { NavBar, TimezonePicker } from './../components'; +import { backend } from '../helpers/http-common'; +import { useAuth } from '../helpers/authContext'; import './styles/layout.less'; export default function Register() { + const [error, setError] = useState(false); + const [newUser, setNewUser] = useState({ + username: '', + email: '', + password: '', + timezone: '', + }); + + const { setAuthToken, authToken } = useAuth(); + + const handleChange = (value, evt) => { + setNewUser({ + ...newUser, + [evt.target.name]: value, + }); + }; + + const handleSelect = (value, item, event) => { + setNewUser({ + ...newUser, + timezone: item.timezone, + }); + }; + + const handleClean = (event) => { + setNewUser({ + ...newUser, + timezone: '', + }); + }; + + const handleRegister = () => { + backend + .post('/auth/register', newUser) + .then((response) => { + setAuthToken(response.data.token); + }) + .catch((error) => { + setError('Failed to add new account.'); + }); + }; + + if (authToken) { + return ; + } + return ( <> + {error && }
Username - + Email - + Timezone - + Password - + Minimum password length is 8 characters -