@eureca/eureca-ui
Version:
UI component library of Eureca's user and admin apps
46 lines (39 loc) • 1.13 kB
JavaScript
import React, { useState } from 'react';
import { makeStyles } from '@material-ui/core/styles';
import { InputAdornment, IconButton } from '@material-ui/core';
import { FiEye, FiEyeOff } from 'react-icons/fi';
import { TextInput } from './text-input';
const styles = makeStyles({
root: {
padding: 0,
},
});
function PasswordInput(props) {
const iconStyles = styles();
const [visible, setVisible] = useState(false);
return (
<TextInput
InputProps={{
endAdornment: (
<InputAdornment position="end">
<IconButton
aria-label="toggle password visibility"
onClick={() => setVisible(!visible)}
classes={iconStyles}
data-testid="password-input-button"
>
{visible ? (
<FiEye data-testid="password-input-icon" />
) : (
<FiEyeOff data-testid="password-input-icon" />
)}
</IconButton>
</InputAdornment>
),
}}
{...props}
type={visible ? 'text' : 'password'}
/>
);
}
export { PasswordInput };