import type { ChangeEvent } from 'react'; import { type JSX, useState } from 'react'; import type { UseFormRegister } from 'react-hook-form'; import styles from './MaskedInput.module.scss'; type Props = { name?: string; readOnly: boolean; value?: string; onChange?: (e: ChangeEvent) => void; tabIndex?: number | undefined; register?: UseFormRegister; fieldName?: string; }; export default function MaskedInput(props: Props): JSX.Element { const [passwordShown, setPasswordShown] = useState(false); const togglePassword = () => { setPasswordShown(!passwordShown); }; const { name, readOnly, value, onChange, tabIndex, register, fieldName } = props; // Use register if provided, otherwise use value/onChange const inputProps = register && fieldName ? register(fieldName) : { name, value, onChange, }; return (
); }