Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

PasswordField.js 2.3KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import React, { forwardRef, useEffect, useState } from "react";
  2. import PropTypes from "prop-types";
  3. import IconButton from "../../../IconButton/IconButton";
  4. import { ReactComponent as VisibilityOn } from "../../../../assets/images/svg/eye-striked.svg";
  5. import { ReactComponent as VisibilityOff } from "../../../../assets/images/svg/eye.svg";
  6. import { useSelector } from "react-redux";
  7. import { selectLoginError } from "../../../../store/selectors/loginSelectors";
  8. import { TextField } from "../../../TextFields/TextField/TextField";
  9. import { useTranslation } from "react-i18next";
  10. const PasswordField = forwardRef((props, ref) => {
  11. const formik = props.formik;
  12. const [showPassword, setShowPassword] = useState(false);
  13. const handleClickShowPassword = () => setShowPassword(!showPassword);
  14. const handleMouseDownPassword = () => setShowPassword(!showPassword);
  15. const error = useSelector(selectLoginError);
  16. const {t} = useTranslation();
  17. // useEffect(() => {
  18. // console.log("error", error);
  19. // console.log("formik errors password", formik.errors.password);
  20. // console.log("formik touched", formik.touched);
  21. // console.log("formik.isVaid", formik);
  22. // if (!formik.isValid) formik.setFieldValue("password", "");
  23. // // if (error?.length > 0 || formik.errors.password) {
  24. // // formik.setFieldValue("password", "");
  25. // // console.log(formik.errors.password)
  26. // // }
  27. // }, [formik.isValid])
  28. useEffect(() => {
  29. console.log(error);
  30. }, [error])
  31. return (
  32. <TextField
  33. name="password"
  34. ref={ref}
  35. placeholder={t("common.labelPassword")}
  36. margin="normal"
  37. type={showPassword ? "text" : "password"}
  38. value={formik.values.password}
  39. onChange={formik.handleChange}
  40. error={
  41. (formik.touched.password && formik.errors.password?.length > 0) || error.length > 0
  42. }
  43. helperText={formik.touched.password && formik.errors.password}
  44. fullWidth
  45. InputProps={{
  46. endAdornment: (
  47. <IconButton
  48. onClick={handleClickShowPassword}
  49. onMouseDown={handleMouseDownPassword}
  50. >
  51. {showPassword ? <VisibilityOn /> : <VisibilityOff />}
  52. </IconButton>
  53. ),
  54. }}
  55. />
  56. );
  57. });
  58. PasswordField.displayName = "PasswordField";
  59. PasswordField.propTypes = {
  60. formik: PropTypes.any,
  61. };
  62. export default PasswordField;