From 1a85faf9f2dfc48079b979e8aa2a112abbeb3014 Mon Sep 17 00:00:00 2001 From: Alex Young Date: Wed, 23 Aug 2017 17:05:36 +0100 Subject: [PATCH] Modify injected Field input prop change function arguments Add tests for input prop --- types/redux-form/lib/Field.d.ts | 19 +++++++++++-------- types/redux-form/redux-form-tests.tsx | 15 ++++++++++++++- 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/types/redux-form/lib/Field.d.ts b/types/redux-form/lib/Field.d.ts index b84954657b..8d3f6ab533 100644 --- a/types/redux-form/lib/Field.d.ts +++ b/types/redux-form/lib/Field.d.ts @@ -16,13 +16,21 @@ export type Formatter = (value: any, name: string) => any; export type Parser = (value: any, name: string) => any; export type Validator = (value: any, allValues?: any, props?: any) => any; +interface EventHandler { + (event: Event): void; +} + +interface EventOrValueHandler extends EventHandler { + (value: any): void; +} + interface CommonFieldProps { name: string; onBlur: EventOrValueHandler>; onChange: EventOrValueHandler>; - onDragStart: EventOrValueHandler>; - onDrop: EventOrValueHandler>; - onFocus: EventOrValueHandler>; + onDragStart: EventHandler>; + onDrop: EventHandler>; + onFocus: EventHandler>; } interface BaseFieldProps

extends Partial { @@ -60,11 +68,6 @@ interface WrappedFieldProps { meta: WrappedFieldMetaProps; } -interface EventOrValueHandler { - (event: Event): void; - (value: any, newValue: any, previousValue: any): void; -} - interface WrappedFieldInputProps extends CommonFieldProps { checked?: boolean; value: any; diff --git a/types/redux-form/redux-form-tests.tsx b/types/redux-form/redux-form-tests.tsx index c70ef161aa..f141835931 100644 --- a/types/redux-form/redux-form-tests.tsx +++ b/types/redux-form/redux-form-tests.tsx @@ -96,7 +96,20 @@ const MyField: StatelessComponent = ({ children, input, meta -}) => null; +}) => { + input.onBlur("value"); + input.onBlur({} as React.SyntheticEvent); + + input.onChange("value"); + input.onChange({} as React.SyntheticEvent); + + input.onDragStart({} as React.DragEvent); + + input.onDrop({} as React.DragEvent); + + input.onFocus({} as React.FocusEvent); + return null; +}; const FieldCustom = Field as new () => GenericField; const MyFieldImm: StatelessComponent = ({