Skip to content
Snippets Groups Projects
PasswordForm.js 1.8 KiB
Newer Older
  • Learn to ignore specific revisions
  • 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}>
    
    meskio's avatar
    meskio committed
              Confirme la contraseña
    
            </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;