import React, {useState, useEffect} from 'react'; import classnames from 'classnames'; import styles from './InputPasswordToggle.scss' import EyeSVG from '../../../svg/eye.svg'; import ILocalContainerProps from '../../../common/structures/ILocalContainerProps'; import Checkbox from '../Checkbox/Checkbox'; interface IProps extends ILocalContainerProps { name?: string; onChange?: any; value?: string; invalid?: boolean; invalidMessage?: string; type?: 'password' | 'text'; checkbox?: boolean; } const InputPasswordToggle = (props: IProps) => { const { className, style, id, name, invalid, invalidMessage, type = 'password', checkbox, value, onChange, ...otherProps } = props; const [inputType, setInputType] = useState(type) const toggleType = () => { setInputType((prev) => prev === 'password' ? 'text' : 'password') } const onKeyDown = (e: any) => { if (e.key === 'Enter'){ toggleType(); } } useEffect(() => { setInputType(type) }, [type]) return (
{checkbox ? (
) : ( )} {(invalid && invalidMessage) && ( {invalidMessage} )}
); } export default InputPasswordToggle;