1
0
mirror of https://github.com/Unleash/unleash.git synced 2024-10-18 20:09:08 +02:00
unleash.unleash/frontend/src/component/common/PasswordField/PasswordField.tsx

52 lines
1.4 KiB
TypeScript
Raw Normal View History

import {
IconButton,
InputAdornment,
TextField,
TextFieldProps,
} from '@material-ui/core';
2022-01-04 13:30:25 +01:00
import { Visibility, VisibilityOff } from '@material-ui/icons';
import React, { useState, VFC } from 'react';
2022-01-04 13:30:25 +01:00
const PasswordField: VFC<TextFieldProps> = ({ ...rest }) => {
2022-01-04 13:30:25 +01:00
const [showPassword, setShowPassword] = useState(false);
const handleClickShowPassword = () => {
setShowPassword(!showPassword);
};
const handleMouseDownPassword = (
e: React.MouseEvent<HTMLButtonElement>
) => {
e.preventDefault();
};
const IconComponent = showPassword ? Visibility : VisibilityOff;
const iconTitle = 'Toggle password visibility';
2022-01-04 13:30:25 +01:00
return (
<TextField
variant="outlined"
size="small"
type={showPassword ? 'text' : 'password'}
InputProps={{
style: {
paddingRight: '0px',
2022-01-04 13:30:25 +01:00
},
endAdornment: (
<InputAdornment position="end">
<IconButton
onClick={handleClickShowPassword}
onMouseDown={handleMouseDownPassword}
>
<IconComponent titleAccess={iconTitle} />
2022-01-04 13:30:25 +01:00
</IconButton>
</InputAdornment>
),
}}
{...rest}
/>
);
};
export default PasswordField;