GermaVinsmoke 72452dc946
chore: remove react import (#2727)
* chore: added jsx-runtime plugin in eslint tsconfig

Signed-off-by: GermaVinsmoke <vaibhav1180@gmail.com>

* chore: updated react imports

Signed-off-by: GermaVinsmoke <vaibhav1180@gmail.com>

* chore: renamed redux dispatch

Signed-off-by: GermaVinsmoke <vaibhav1180@gmail.com>

* fix: build is fixed

---------

Signed-off-by: GermaVinsmoke <vaibhav1180@gmail.com>
Co-authored-by: Palash Gupta <palashgdev@gmail.com>
2023-05-19 13:14:32 +05:30

72 lines
1.5 KiB
TypeScript

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 (
<Form.Item labelCol={{ span: labelOnTop ? 24 : 4 }} label={label}>
<Input
placeholder={placeholder}
type={type}
onChange={onChangeHandler}
value={value}
ref={ref as Ref<InputRef>}
size={size}
addonBefore={addonBefore}
onBlur={onBlurHandler}
onPressEnter={onPressEnterHandler}
// eslint-disable-next-line react/jsx-props-no-spreading
{...props}
/>
</Form.Item>
);
}
interface InputComponentProps extends InputProps {
value: InputProps['value'];
type?: InputProps['type'];
onChangeHandler?: ChangeEventHandler<HTMLInputElement>;
placeholder?: InputProps['placeholder'];
ref?: LegacyRef<InputRef>;
size?: InputProps['size'];
onBlurHandler?: FocusEventHandler<HTMLInputElement>;
onPressEnterHandler?: KeyboardEventHandler<HTMLInputElement>;
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;