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 ? (
-
- ) : (
-
- )}
-
-
- ),
- }}
/>