diff options
author | Eugene Sokolov <eug-vs@keemail.me> | 2020-06-16 20:21:35 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-06-16 20:21:35 +0300 |
commit | 0e7c2d476225b3e381a86710a3635ab707387499 (patch) | |
tree | 27a9134031b4c90a9c887fbf9d8d2fa0e80a4109 /src/pages/AuthPage/SignUpForm.tsx | |
parent | b860685d212200b5a46b7fea066306b851bf6e26 (diff) | |
parent | 5ec0669e6160f025017684a7d48f1d07a1768785 (diff) | |
download | which-ui-0e7c2d476225b3e381a86710a3635ab707387499.tar.gz |
Merge pull request #38 from ilyayudovin/registration
Registration form
Diffstat (limited to 'src/pages/AuthPage/SignUpForm.tsx')
-rw-r--r-- | src/pages/AuthPage/SignUpForm.tsx | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/src/pages/AuthPage/SignUpForm.tsx b/src/pages/AuthPage/SignUpForm.tsx new file mode 100644 index 0000000..2769eb0 --- /dev/null +++ b/src/pages/AuthPage/SignUpForm.tsx @@ -0,0 +1,62 @@ +import React, { useRef } from 'react'; +import { makeStyles } from '@material-ui/core/styles'; +import TextField from '@material-ui/core/TextField'; +import Button from '@material-ui/core/Button'; +import { post } from '../../requests'; + +interface PropTypes { + logIn: (name: string, password: string) => Promise<boolean>; +} + +const useStyles = makeStyles(theme => ({ + root: { + '& > *': { + margin: theme.spacing(1), + width: theme.spacing(35) + }, + display: 'flex', + flexDirection: 'column', + alignItems: 'center', + textAlign: 'center' + }, + formHeader: { + textAlign: 'center', + fontSize: 25 + } +})); + +const SignUpForm: React.FC<PropTypes> = ({ logIn }) => { + const classes = useStyles(); + const inputRef = useRef<HTMLInputElement>(); + const inputRefPassword = useRef<HTMLInputElement>(); + + const onClick = () => { + const name = inputRef.current?.value; + const password = inputRefPassword.current?.value; + const newUser = { name, password }; + if (name && password) { + post('/users', newUser).then(() => { + logIn(name, password); + }); + } + }; + + return ( + <> + <div className={classes.formHeader}>Sign Up</div> + <form className={classes.root} noValidate autoComplete="off"> + <TextField inputRef={inputRef} id="standard-basic" label="Name" /> + <TextField id="standard-basic" label="Email" /> + <TextField + inputRef={inputRefPassword} + id="standard-password-input" + label="Password" + type="password" + /> + <Button variant="contained" onClick={onClick}>submit</Button> + </form> + </> + ); +}; + +export default SignUpForm; |