@@ -3,21 +3,21 @@ import { FieldSubscription, FieldState } from 'final-form'
33import { UseFieldConfig } from 'react-final-form'
44export const version : string
55
6- export interface FieldArrayRenderProps < T extends HTMLElement > {
6+ export interface FieldArrayRenderProps < FieldValue , T extends HTMLElement > {
77 fields : {
88 forEach : ( iterator : ( name : string , index : number ) => void ) => void
9- insert : ( index : number , value : any ) => void
10- map : ( iterator : ( name : string , index : number ) => any ) => any [ ]
9+ insert : ( index : number , value : FieldValue ) => void
10+ map : < R > ( iterator : ( name : string , index : number ) => R ) => R [ ]
1111 move : ( from : number , to : number ) => void
12- update : ( index : number , value : any ) => void
12+ update : ( index : number , value : FieldValue ) => void
1313 name : string
14- pop : ( ) => any
15- push : ( value : any ) => void
16- remove : ( index : number ) => any
17- shift : ( ) => any
14+ pop : ( ) => FieldValue
15+ push : ( value : FieldValue ) => void
16+ remove : ( index : number ) => FieldValue
17+ shift : ( ) => FieldValue
1818 swap : ( indexA : number , indexB : number ) => void
19- unshift : ( value : any ) => void
20- } & FieldState
19+ unshift : ( value : FieldValue ) => void
20+ } & FieldState < FieldValue [ ] >
2121 meta : Partial < {
2222 // TODO: Make a diff of `FieldState` without all the functions
2323 active : boolean
@@ -42,19 +42,29 @@ export interface RenderableProps<T> {
4242 render ?: ( props : T ) => React . ReactNode
4343}
4444
45- export interface UseFieldArrayConfig extends UseFieldConfig {
45+ export interface UseFieldArrayConfig < FieldValue >
46+ extends UseFieldConfig < FieldValue > {
4647 isEqual ?: ( a : any [ ] , b : any [ ] ) => boolean
4748}
4849
49- export interface FieldArrayProps < T extends HTMLElement >
50- extends UseFieldArrayConfig ,
51- RenderableProps < FieldArrayRenderProps < T > > {
50+ export interface FieldArrayProps < FieldValue , T extends HTMLElement >
51+ extends UseFieldArrayConfig < FieldValue > ,
52+ RenderableProps < FieldArrayRenderProps < FieldValue , T > > {
5253 name : string
5354 [ otherProp : string ] : any
5455}
5556
56- export const FieldArray : React . FC < FieldArrayProps < any > >
57- export function useFieldArray < T extends HTMLElement > (
57+ export const FieldArray : <
58+ FieldValue = any ,
59+ T extends HTMLElement = HTMLElement
60+ > (
61+ props : FieldArrayProps < FieldValue , T >
62+ ) => React . ReactElement
63+
64+ export function useFieldArray <
65+ FieldValue = any ,
66+ T extends HTMLElement = HTMLElement
67+ > (
5868 name : string ,
59- config : UseFieldArrayConfig
60- ) : FieldArrayRenderProps < T >
69+ config : UseFieldArrayConfig < FieldValue >
70+ ) : FieldArrayRenderProps < FieldValue , T >
0 commit comments