Newer
Older
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
import React, { useState } from "react";
import { Form, Col, Row } from "react-bootstrap";
function PasswordForm(props) {
const [pass2, setPass2] = useState("");
const [passValid, setPassValid] = useState(true);
const [passMatch, setPassMatch] = useState(true);
const onPassChange = (e) => {
const password = e.target.value;
props.onChange(password);
const passValid = password.length >= 8;
setPassValid(passValid);
props.setValid(passValid && passMatch);
};
const onPass2Change = (e) => {
const password = e.target.value;
setPass2(password);
const passMatch = props.password === password;
setPassMatch(passMatch);
props.setValid(passValid && passMatch);
};
return (
<div>
<Form.Group as={Row}>
<Form.Label as="legend" column sm={4}>
Nueva contraseña
</Form.Label>
<Col sm={8}>
<Form.Control
placeholder="Nueva contraseña"
type="password"
value={props.password}
onChange={onPassChange}
isInvalid={!passValid}
/>
<Form.Control.Feedback type="invalid">
La contraseña es demasiado corta.
</Form.Control.Feedback>
</Col>
</Form.Group>
<Form.Group as={Row}>
<Form.Label as="legend" column sm={4}>
</Form.Label>
<Col sm={8}>
<Form.Control
placeholder="Repita la nueva contraseña"
type="password"
value={pass2}
onChange={onPass2Change}
isInvalid={!passMatch}
/>
<Form.Control.Feedback type="invalid">
Las contraseñas no coinciden.
</Form.Control.Feedback>
</Col>
</Form.Group>
</div>
);
}
export default PasswordForm;