import { EyeIcon, EyeSlashIcon } from '@heroicons/react/24/solid'; import { Field } from 'formik'; import { useState } from 'react'; interface CustomInputProps extends React.ComponentProps<'input'> { as?: 'input'; } interface CustomFieldProps extends React.ComponentProps { as?: 'field'; } type SensitiveInputProps = CustomInputProps | CustomFieldProps; const SensitiveInput = ({ as = 'input', ...props }: SensitiveInputProps) => { const [isHidden, setHidden] = useState(true); const Component = as === 'input' ? 'input' : Field; const componentProps = as === 'input' ? props : { ...props, as: props.type === 'textarea' && !isHidden ? 'textarea' : undefined, }; return ( <> ); }; export default SensitiveInput;