-
-
Notifications
You must be signed in to change notification settings - Fork 70
/
Copy pathindex.d.ts
70 lines (64 loc) · 2.08 KB
/
index.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
import { FieldState } from 'final-form'
import { UseFieldConfig } from 'react-final-form'
export const version: string
export interface FieldArrayRenderProps<FieldValue, T extends HTMLElement> {
fields: {
forEach: (iterator: (name: string, index: number) => void) => void
insert: (index: number, value: FieldValue) => void
map: <R>(iterator: (name: string, index: number) => R) => R[]
move: (from: number, to: number) => void
update: (index: number, value: FieldValue) => void
name: string
pop: () => FieldValue
push: (value: FieldValue) => void
remove: (index: number) => FieldValue
shift: () => FieldValue
swap: (indexA: number, indexB: number) => void
unshift: (value: FieldValue) => void
value: FieldValue[]
} & Omit<FieldState<FieldValue[]>, 'length'> & Required<Pick<FieldState<FieldValue[]>, 'length'>>
meta: Partial<{
// TODO: Make a diff of `FieldState` without all the functions
active: boolean
dirty: boolean
dirtySinceLastSubmit: boolean
error: any
initial: any
invalid: boolean
pristine: boolean
submitError: any
submitFailed: boolean
submitSucceeded: boolean
touched: boolean
valid: boolean
visited: boolean
}>
}
export interface RenderableProps<T> {
children?: ((props: T) => React.ReactNode) | React.ReactNode
component?: React.ComponentType<T> | string
render?: (props: T) => React.ReactNode
}
export interface UseFieldArrayConfig<FieldValue>
extends UseFieldConfig<FieldValue[]> {
isEqual?: (a: any[], b: any[]) => boolean
}
export interface FieldArrayProps<FieldValue, T extends HTMLElement>
extends UseFieldArrayConfig<FieldValue>,
RenderableProps<FieldArrayRenderProps<FieldValue, T>> {
name: string
[otherProp: string]: any
}
export const FieldArray: <
FieldValue = any,
T extends HTMLElement = HTMLElement
>(
props: FieldArrayProps<FieldValue, T>
) => React.ReactElement
export function useFieldArray<
FieldValue = any,
T extends HTMLElement = HTMLElement
>(
name: string,
config?: UseFieldArrayConfig<FieldValue>
): FieldArrayRenderProps<FieldValue, T>