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;