Password.jsx 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import React from "react";
  2. class PasswordConfirm extends React.Component {
  3. constructor(props) {
  4. super(props);
  5. this.state = {
  6. password: "",
  7. passwordConfirm: "",
  8. };
  9. }
  10. inputChange = (e) => {
  11. this.setState({ [e.target.name]: e.target.value });
  12. };
  13. render() {
  14. const { min } = this.props;
  15. const arePasswordsEqual =
  16. this.state.password === this.state.passwordConfirm;
  17. const hasErrorPsw =
  18. this.state.password.length < min || !arePasswordsEqual;
  19. const hasErrorPswConfirm =
  20. this.state.passwordConfirm.length < min || !arePasswordsEqual;
  21. return (
  22. <div className="PasswordConfirmWrapper">
  23. <h3>Enter Password:</h3>
  24. <input
  25. placeholder={"password"}
  26. name={"password"}
  27. type={"password"}
  28. className={hasErrorPsw ? "error" : ""}
  29. onChange={this.inputChange}
  30. />
  31. <h3>Enter Password Again:</h3>
  32. <input
  33. placeholder={"confirm password"}
  34. name={"passwordConfirm"}
  35. type={"password"}
  36. className={hasErrorPswConfirm ? "error" : ""}
  37. onChange={this.inputChange}
  38. />
  39. </div>
  40. );
  41. }
  42. }
  43. class PasswordConfirmParent extends React.Component {
  44. render() {
  45. return (
  46. <div>
  47. <PasswordConfirm min={2} />
  48. </div>
  49. );
  50. }
  51. }
  52. export default PasswordConfirmParent;