diff --git a/frontend/src/component/admin/users/change-password-component.jsx b/frontend/src/component/admin/users/change-password-component.jsx index 6027c7aa16..baaf88d426 100644 --- a/frontend/src/component/admin/users/change-password-component.jsx +++ b/frontend/src/component/admin/users/change-password-component.jsx @@ -1,14 +1,7 @@ import { useState } from 'react'; import PropTypes from 'prop-types'; import classnames from 'classnames'; -import { - TextField, - Typography, - Avatar, - InputAdornment, - IconButton, -} from '@material-ui/core'; -import { Visibility, VisibilityOff } from '@material-ui/icons'; +import { Typography, Avatar } from '@material-ui/core'; import { trim } from '../../common/util'; import { modalStyles } from './util'; import Dialogue from '../../common/Dialogue/Dialogue'; @@ -17,6 +10,7 @@ import { useCommonStyles } from '../../../common.styles'; import PasswordMatcher from '../../user/common/ResetPasswordForm/PasswordMatcher/PasswordMatcher'; import ConditionallyRender from '../../common/ConditionallyRender'; import { Alert } from '@material-ui/lab'; +import PasswordField from '../../common/PasswordField/PasswordField'; function ChangePassword({ showDialog, @@ -27,17 +21,8 @@ function ChangePassword({ const [data, setData] = useState({}); const [error, setError] = useState({}); const [validPassword, setValidPassword] = useState(false); - const [showPassword, setShowPassword] = useState(false); const commonStyles = useCommonStyles(); - const handleClickShowPassword = () => { - setShowPassword(!showPassword); - }; - - const handleMouseDownPassword = e => { - e.preventDefault(); - }; - const updateField = e => { setError({}); setData({ @@ -125,66 +110,20 @@ function ChangePassword({ />

{error.general}

- - - {showPassword ? ( - - ) : ( - - )} - - - ), - }} /> - - - {showPassword ? ( - - ) : ( - - )} - - - ), - }} /> { + const [showPassword, setShowPassword] = useState(false); + + const handleClickShowPassword = () => { + setShowPassword(!showPassword); + }; + + const handleMouseDownPassword = ( + e: React.MouseEvent + ) => { + e.preventDefault(); + }; + + return ( + + + {showPassword ? : } + + + ), + }} + {...rest} + /> + ); +}; + +export default PasswordField; diff --git a/frontend/src/component/user/HostedAuth/HostedAuth.jsx b/frontend/src/component/user/HostedAuth/HostedAuth.jsx index 9b0d6cdcf5..b2e25ea70b 100644 --- a/frontend/src/component/user/HostedAuth/HostedAuth.jsx +++ b/frontend/src/component/user/HostedAuth/HostedAuth.jsx @@ -1,15 +1,7 @@ -import React, { useState } from 'react'; +import { useState } from 'react'; import classnames from 'classnames'; import PropTypes from 'prop-types'; -import { - Button, - Grid, - TextField, - Typography, - InputAdornment, - IconButton, -} from '@material-ui/core'; -import { Visibility, VisibilityOff } from '@material-ui/icons'; +import { Button, Grid, TextField, Typography } from '@material-ui/core'; import { useHistory } from 'react-router'; import { useCommonStyles } from '../../../common.styles'; import { useStyles } from './HostedAuth.styles'; @@ -18,6 +10,7 @@ import AuthOptions from '../common/AuthOptions/AuthOptions'; import DividerText from '../../common/DividerText/DividerText'; import ConditionallyRender from '../../common/ConditionallyRender'; import useUser from '../../../hooks/api/getters/useUser/useUser'; +import PasswordField from '../../common/PasswordField/PasswordField'; const HostedAuth = ({ authDetails, passwordLogin }) => { const commonStyles = useCommonStyles(); @@ -27,20 +20,11 @@ const HostedAuth = ({ authDetails, passwordLogin }) => { const params = useQueryParams(); const [username, setUsername] = useState(params.get('email') || ''); const [password, setPassword] = useState(''); - const [showPassword, setShowPassword] = useState(false); const [errors, setErrors] = useState({ usernameError: '', passwordError: '', }); - const handleClickShowPassword = () => { - setShowPassword(!showPassword); - }; - - const handleMouseDownPassword = e => { - e.preventDefault(); - }; - const handleSubmit = async evt => { evt.preventDefault(); @@ -126,40 +110,13 @@ const HostedAuth = ({ authDetails, passwordLogin }) => { variant="outlined" size="small" /> - setPassword(evt.target.value)} name="password" - type={showPassword ? 'text' : 'password'} value={password} error={!!passwordError} helperText={passwordError} - variant="outlined" - size="small" - InputProps={{ - style:{ - paddingRight: 0 - }, - endAdornment: ( - - - {showPassword ? ( - - ) : ( - - )} - - - ), - }} />