This repository was archived by the owner on Mar 19, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathLogInWithPassword.jsx
More file actions
54 lines (48 loc) · 1.74 KB
/
LogInWithPassword.jsx
File metadata and controls
54 lines (48 loc) · 1.74 KB
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
import { useState } from "react";
import SubmitButton from "../components/SubmitButton";
import BackButton from "../components/BackButton";
import ErrorMessage from "../components/ErrorMessage";
import Input from "../components/Input";
/**
* A view prompting the user for their username/email and password.
*
* @param {object} props
* @param {boolean} props.allowBack - if true, show a Back button
* @param {object} error - a Userfront error to display
* @param {function} onEvent
*/
const LogInWithPassword = ({ onEvent, allowBack, error }) => {
const [emailOrUsernameError, setEmailOrUsernameError] = useState(false);
const [passwordError, setPasswordError] = useState(false);
const handleSubmit = (event) => {
event.preventDefault();
const elements = event.target.elements;
// Enforce presence of emailOrUsername & password
setEmailOrUsernameError(!elements.emailOrUsername.value);
setPasswordError(!elements.password.value);
if (!elements.emailOrUsername.value || !elements.password.value) return;
if (onEvent) {
onEvent({
type: "submit",
emailOrUsername: elements.emailOrUsername.value,
password: elements.password.value,
});
}
};
return (
<form onSubmit={handleSubmit} className="userfront-form">
<div className="userfront-form-row">
<Input.EmailOrUsername showError={emailOrUsernameError} />
</div>
<div className="userfront-form-row">
<Input.Password label="Password" showError={passwordError} />
</div>
<ErrorMessage error={error} />
<div className="userfront-button-row">
{allowBack && <BackButton onEvent={onEvent} />}
<SubmitButton />
</div>
</form>
);
};
export default LogInWithPassword;