aboutsummaryrefslogtreecommitdiff
path: root/src/pages/AuthPage/SignUpForm.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/pages/AuthPage/SignUpForm.tsx')
-rw-r--r--src/pages/AuthPage/SignUpForm.tsx62
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;