Skip to content

Commit f3c1aea

Browse files
PerfectPixelerikras
authored andcommitted
Add data object to useField/Field (#711)
1 parent ab977a9 commit f3c1aea

File tree

5 files changed

+25
-3
lines changed

5 files changed

+25
-3
lines changed

docs/types/FieldProps.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,16 @@ Related:
9797

9898
- [`FieldRenderProps`](FieldRenderProps)
9999

100+
## `data`
101+
102+
```ts
103+
Object
104+
```
105+
106+
Optional.
107+
108+
Initial state for arbitrary values to be placed by mutators.
109+
100110
## `defaultValue`
101111

102112
```ts

src/Field.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ const Field = ({
1010
beforeSubmit,
1111
children,
1212
component,
13+
data,
1314
defaultValue,
1415
format,
1516
formatOnBlur,
@@ -31,6 +32,7 @@ const Field = ({
3132
beforeSubmit,
3233
children,
3334
component,
35+
data,
3436
defaultValue,
3537
format,
3638
formatOnBlur,

src/types.js.flow

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ export type UseFieldAutoConfig = {
8080
beforeSubmit?: () => void | false,
8181
children?: $PropertyType<RenderableProps<*>, 'children'>,
8282
component?: $PropertyType<RenderableProps<*>, 'component'>,
83+
data?: Object,
8384
defaultValue?: any,
8485
format?: (value: any, name: string) => any,
8586
formatOnBlur?: boolean,

src/useField.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ function useField<FormValues: FormValuesShape>(
3434
afterSubmit,
3535
allowNull,
3636
component,
37+
data,
3738
defaultValue,
3839
format = defaultFormat,
3940
formatOnBlur,
@@ -75,6 +76,7 @@ function useField<FormValues: FormValuesShape>(
7576

7677
return beforeSubmit && beforeSubmit()
7778
},
79+
data,
7880
defaultValue,
7981
getValidator: () => configRef.current.validate,
8082
initialValue,
@@ -114,6 +116,7 @@ function useField<FormValues: FormValuesShape>(
114116
// eslint-disable-next-line react-hooks/exhaustive-deps
115117
[
116118
name,
119+
data,
117120
defaultValue,
118121
// If we want to allow inline fat-arrow field-level validation functions, we
119122
// cannot reregister field every time validate function !==.

typescript/index.d.ts

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@ export type FieldMetaState<FieldValue> = Pick<
2424
>
2525
>;
2626

27-
interface FieldInputProps<FieldValue, T extends HTMLElement = HTMLElement> extends AnyObject {
27+
interface FieldInputProps<FieldValue, T extends HTMLElement = HTMLElement>
28+
extends AnyObject {
2829
name: string;
2930
onBlur: (event?: React.FocusEvent<T>) => void;
3031
onChange: (event: React.ChangeEvent<T> | any) => void;
@@ -39,13 +40,17 @@ interface AnyObject {
3940
[key: string]: any;
4041
}
4142

42-
export interface FieldRenderProps<FieldValue, T extends HTMLElement = HTMLElement> {
43+
export interface FieldRenderProps<
44+
FieldValue,
45+
T extends HTMLElement = HTMLElement
46+
> {
4347
input: FieldInputProps<FieldValue, T>;
4448
meta: FieldMetaState<FieldValue>;
4549
}
4650

4751
export interface FormRenderProps<FormValues = AnyObject>
48-
extends FormState<FormValues>, RenderableProps<FormRenderProps<FormValues>> {
52+
extends FormState<FormValues>,
53+
RenderableProps<FormRenderProps<FormValues>> {
4954
form: FormApi<FormValues>;
5055
handleSubmit: (
5156
event?: React.SyntheticEvent<HTMLFormElement>
@@ -76,6 +81,7 @@ export interface UseFieldConfig<FieldValue> {
7681
afterSubmit?: () => void;
7782
allowNull?: boolean;
7883
beforeSubmit?: () => void | boolean;
84+
data?: AnyObject;
7985
defaultValue?: FieldValue;
8086
format?: (value: FieldValue, name: string) => any;
8187
formatOnBlur?: boolean;

0 commit comments

Comments
 (0)