import { InputHTMLAttributes, useEffect, useRef } from 'react';
import Inputmask from 'inputmask';
import { classNames } from '@/shared/lib/classNames/classNames';
import cls from './Input.module.scss';
type HTMLInputProps = Omit, 'value' | 'onChange'>;
interface InputProps extends HTMLInputProps {
className?: string;
value?: string;
onChange?: (value: string) => void;
inputRef?: (ref: any) => void;
mask?: string;
maskOptions?: any;
}
export const Input = (props: InputProps) => {
const { className, value, onChange, inputRef, mask, maskOptions, ...otherProps } = props;
const inputRefValue = useRef(null);
if (inputRefValue.current && (mask || maskOptions)) new Inputmask(mask, maskOptions).mask(inputRefValue.current);
useEffect(() => {
if (inputRef) inputRef(inputRefValue.current);
}, [inputRefValue.current]);
return (
onChange?.(e.target.value)}
{...otherProps}
/>
);
};