Add submit handler
This commit is contained in:
@@ -1,11 +1,26 @@
|
|||||||
import React from 'react';
|
import React, { useRef } from 'react';
|
||||||
import { Link as RouterLink } from 'react-router-dom';
|
import { Link as RouterLink } from 'react-router-dom';
|
||||||
import { Avatar, Button, Container, CssBaseline, Grid, Link, TextField, Typography } from '@material-ui/core';
|
import { Avatar, Button, Container, CssBaseline, Grid, Link, TextField, Typography } from '@material-ui/core';
|
||||||
import LockOutlinedIcon from '@material-ui/icons/LockOutlined';
|
import LockOutlinedIcon from '@material-ui/icons/LockOutlined';
|
||||||
|
import { useUserContext } from '../Contexts/UserContext';
|
||||||
import useStyles from '../Styles';
|
import useStyles from '../Styles';
|
||||||
|
|
||||||
export default function SignInForm() {
|
export default function SignInForm() {
|
||||||
const classes = useStyles();
|
const classes = useStyles();
|
||||||
|
const emailEl = useRef(null);
|
||||||
|
const passwordEl = useRef(null);
|
||||||
|
const { fetching, signIn, setError } = useUserContext();
|
||||||
|
const onSubmit = async (event) => {
|
||||||
|
try {
|
||||||
|
event.preventDefault();
|
||||||
|
const username = emailEl.current.value;
|
||||||
|
const password = passwordEl.current.value;
|
||||||
|
const result = await signIn(username, password);
|
||||||
|
}
|
||||||
|
catch (e) {
|
||||||
|
setError(e.message);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Container component="main" maxWidth="xs">
|
<Container component="main" maxWidth="xs">
|
||||||
@@ -17,7 +32,7 @@ export default function SignInForm() {
|
|||||||
<Typography component="h1" variant="h5">
|
<Typography component="h1" variant="h5">
|
||||||
Sign in
|
Sign in
|
||||||
</Typography>
|
</Typography>
|
||||||
<form className={classes.form} noValidate>
|
<form className={classes.form} noValidate action="{onSubmit}">
|
||||||
<TextField
|
<TextField
|
||||||
variant="outlined"
|
variant="outlined"
|
||||||
margin="normal"
|
margin="normal"
|
||||||
@@ -28,6 +43,7 @@ export default function SignInForm() {
|
|||||||
name="email"
|
name="email"
|
||||||
autoComplete="email"
|
autoComplete="email"
|
||||||
autoFocus
|
autoFocus
|
||||||
|
inputRef={emailEl}
|
||||||
/>
|
/>
|
||||||
<TextField
|
<TextField
|
||||||
variant="outlined"
|
variant="outlined"
|
||||||
@@ -39,13 +55,16 @@ export default function SignInForm() {
|
|||||||
type="password"
|
type="password"
|
||||||
id="password"
|
id="password"
|
||||||
autoComplete="current-password"
|
autoComplete="current-password"
|
||||||
|
inputRef={passwordEl}
|
||||||
/>
|
/>
|
||||||
<Button
|
<Button
|
||||||
type="submit"
|
type="submit"
|
||||||
|
disabled={fetching}
|
||||||
fullWidth
|
fullWidth
|
||||||
variant="contained"
|
variant="contained"
|
||||||
color="primary"
|
color="primary"
|
||||||
className={classes.submit}
|
className={classes.submit}
|
||||||
|
onClick={onSubmit}
|
||||||
>
|
>
|
||||||
Sign In
|
Sign In
|
||||||
</Button>
|
</Button>
|
||||||
|
|||||||
@@ -1,11 +1,28 @@
|
|||||||
import React from 'react';
|
import React, { useRef } from 'react';
|
||||||
import { Link as RouterLink } from 'react-router-dom';
|
import { Link as RouterLink } from 'react-router-dom';
|
||||||
import { Avatar, Button, Container, CssBaseline, Grid, Link, TextField, Typography } from '@material-ui/core';
|
import { Avatar, Button, Container, CssBaseline, Grid, Link, TextField, Typography } from '@material-ui/core';
|
||||||
import LockOpenOutlinedIcon from '@material-ui/icons/LockOpenOutlined';
|
import LockOpenOutlinedIcon from '@material-ui/icons/LockOpenOutlined';
|
||||||
import useStyles from '../Styles';
|
import useStyles from '../Styles';
|
||||||
|
import { useUserContext } from '../Contexts/UserContext';
|
||||||
|
|
||||||
export default function SignInForm() {
|
export default function SignInForm() {
|
||||||
|
const { signUp, fetching, setError } = useUserContext();
|
||||||
const classes = useStyles();
|
const classes = useStyles();
|
||||||
|
const emailEl = useRef(null);
|
||||||
|
const passwordEl = useRef(null);
|
||||||
|
const confirmEl = useRef(null);
|
||||||
|
const onSubmit = async (event) => {
|
||||||
|
try {
|
||||||
|
event.preventDefault();
|
||||||
|
const email = emailEl.current.value;
|
||||||
|
const password = passwordEl.current.value;
|
||||||
|
const confirm = confirmEl.current.value;
|
||||||
|
const result = await signUp(email, password, confirm);
|
||||||
|
}
|
||||||
|
catch (e) {
|
||||||
|
setError(e.message);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Container component="main" maxWidth="xs">
|
<Container component="main" maxWidth="xs">
|
||||||
@@ -17,7 +34,7 @@ export default function SignInForm() {
|
|||||||
<Typography component="h1" variant="h5">
|
<Typography component="h1" variant="h5">
|
||||||
Sign up
|
Sign up
|
||||||
</Typography>
|
</Typography>
|
||||||
<form className={classes.form} noValidate>
|
<form className={classes.form} noValidate onSubmit={onSubmit}>
|
||||||
<TextField
|
<TextField
|
||||||
variant="outlined"
|
variant="outlined"
|
||||||
margin="normal"
|
margin="normal"
|
||||||
@@ -28,6 +45,7 @@ export default function SignInForm() {
|
|||||||
name="email"
|
name="email"
|
||||||
autoComplete="email"
|
autoComplete="email"
|
||||||
autoFocus
|
autoFocus
|
||||||
|
inputRef={emailEl}
|
||||||
/>
|
/>
|
||||||
<TextField
|
<TextField
|
||||||
variant="outlined"
|
variant="outlined"
|
||||||
@@ -39,6 +57,7 @@ export default function SignInForm() {
|
|||||||
type="password"
|
type="password"
|
||||||
id="password"
|
id="password"
|
||||||
autoComplete="new-password"
|
autoComplete="new-password"
|
||||||
|
inputRef={passwordEl}
|
||||||
/>
|
/>
|
||||||
<TextField
|
<TextField
|
||||||
variant="outlined"
|
variant="outlined"
|
||||||
@@ -49,6 +68,7 @@ export default function SignInForm() {
|
|||||||
label="Confirm Password"
|
label="Confirm Password"
|
||||||
type="password"
|
type="password"
|
||||||
id="passwordConfirm"
|
id="passwordConfirm"
|
||||||
|
inputRef={confirmEl}
|
||||||
/>
|
/>
|
||||||
<Button
|
<Button
|
||||||
type="submit"
|
type="submit"
|
||||||
@@ -56,6 +76,7 @@ export default function SignInForm() {
|
|||||||
variant="contained"
|
variant="contained"
|
||||||
color="primary"
|
color="primary"
|
||||||
className={classes.submit}
|
className={classes.submit}
|
||||||
|
disabled={fetching}
|
||||||
>
|
>
|
||||||
Sign Up
|
Sign Up
|
||||||
</Button>
|
</Button>
|
||||||
|
|||||||
Reference in New Issue
Block a user