-
Notifications
You must be signed in to change notification settings - Fork 181
/
CustomForgotPassword.js
97 lines (89 loc) · 2.53 KB
/
CustomForgotPassword.js
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
94
95
96
97
import React from "react";
import {
Button,
Dialog,
DialogActions,
DialogContent,
DialogContentText,
DialogTitle,
Snackbar,
TextField,
} from "@material-ui/core";
import firebase from "firebase/compat/app";
import "firebase/compat/auth";
export default function AlertDialog() {
const [open, setOpen] = React.useState(false);
const [email, setEmail] = React.useState("");
const [toastOpen, setToastOpen] = React.useState(false);
const [toastMessage, setToastMessage] = React.useState("");
const handleClickOpen = () => {
setOpen(true);
};
const handleClose = () => {
setOpen(false);
};
const handleSubmit = async () => {
console.log("sending email to: ", email);
try {
await firebase.auth().sendPasswordResetEmail(email);
setOpen(false);
setToastOpen(true);
setToastMessage("Password reset email sent!");
} catch (error) {
setToastOpen(true);
setToastMessage(error.message);
}
};
const handleOnChange = (event) => {
const email = event.target.value;
setEmail(email);
};
const handleToastClose = () => {
setToastOpen(false);
setToastOpen(false);
};
return (
<div style={{display: 'flex', justifyContent: 'center', padding: '10px', paddingTop: '0px'}}>
<Button variant="contained" onClick={handleClickOpen} style={{width: '100%'}}>
Forgot Password?
</Button>
<Dialog
open={open}
onClose={handleClose}
aria-labelledby="alert-dialog-title"
aria-describedby="alert-dialog-description"
>
<DialogTitle id="alert-dialog-title">Send Password Reset?</DialogTitle>
<DialogContent>
<DialogContentText id="alert-dialog-description">
A password reset will be sent to the following email:
</DialogContentText>
<TextField
id="outlined-basic"
label="Email"
type="email"
variant="outlined"
style={{width: '100%'}}
onChange={handleOnChange}
/>
</DialogContent>
<DialogActions>
<Button onClick={handleClose}>Cancel</Button>
<Button onClick={handleSubmit} color="primary" autoFocus>
Send Email
</Button>
</DialogActions>
</Dialog>
<Snackbar
open={toastOpen}
onClose={handleToastClose}
autoHideDuration={6000}
anchorOrigin={{
vertical: "bottom",
horizontal: "center",
}}
message={toastMessage}
></Snackbar>
</div>
);
}