import { Input as $Input } from "antd"; import { Field, FieldProps } from "formik"; import * as React from "react"; import { InputProps as $InputProps, PasswordProps as $PasswordProps, TextAreaProps as $TextAreaProps } from "antd/lib/input"; import { FormikFieldProps } from "../FieldProps"; export type InputProps = FormikFieldProps & $InputProps; export const Input = ({ name, validate, onChange: $onChange, onBlur: $onBlur, ...restProps }: InputProps) => ( {({ field: { value, onChange, onBlur } }: FieldProps) => ( <$Input name={name} value={value} onChange={event => { onChange(event) $onChange && $onChange(event) }} onBlur={event => { onBlur(event) $onBlur && $onBlur(event) }} {...restProps} /> )} ); export default Input export type PasswordProps = FormikFieldProps & $PasswordProps; Input.Password = ({ name, validate, onChange: $onChange, onBlur: $onBlur, ...restProps }: PasswordProps) => ( {({ field: { value, onChange, onBlur } }: FieldProps) => ( <$Input.Password name={name} value={value} onChange={event => { onChange(event) $onChange && $onChange(event) }} onBlur={event => { onBlur(event) $onBlur && $onBlur(event) }} {...restProps} /> )} ); export type TextAreaProps = FormikFieldProps & $TextAreaProps; Input.TextArea = ({ name, validate, onChange: $onChange, onBlur: $onBlur, ...restProps }: TextAreaProps) => ( {({ field: { value, onChange, onBlur } }: FieldProps) => ( <$Input.TextArea name={name} value={value} onChange={event => { onChange(event) $onChange && $onChange(event) }} onBlur={event => { onBlur(event) $onBlur && $onBlur(event) }} {...restProps} /> )} );