import { Form, Input, InputProps, InputRef } from 'antd'; import { ChangeEventHandler, FocusEventHandler, KeyboardEventHandler, LegacyRef, ReactNode, Ref, } from 'react'; function InputComponent({ value, type = 'text', onChangeHandler, placeholder, ref, size = 'small', onBlurHandler, onPressEnterHandler, label, labelOnTop, addonBefore, ...props }: InputComponentProps): JSX.Element { return ( } size={size} addonBefore={addonBefore} onBlur={onBlurHandler} onPressEnter={onPressEnterHandler} // eslint-disable-next-line react/jsx-props-no-spreading {...props} /> ); } interface InputComponentProps extends InputProps { value: InputProps['value']; type?: InputProps['type']; onChangeHandler?: ChangeEventHandler; placeholder?: InputProps['placeholder']; ref?: LegacyRef; size?: InputProps['size']; onBlurHandler?: FocusEventHandler; onPressEnterHandler?: KeyboardEventHandler; label?: string; labelOnTop?: boolean; addonBefore?: ReactNode; } InputComponent.defaultProps = { type: undefined, onChangeHandler: undefined, placeholder: undefined, ref: undefined, size: undefined, onBlurHandler: undefined, onPressEnterHandler: undefined, label: undefined, labelOnTop: undefined, addonBefore: undefined, }; export default InputComponent;