UNPKG

2.88 kBTypeScriptView Raw
1import * as React from 'react';
2import { SharedRenderProps, FormikProps } from './types';
3export declare type FieldArrayRenderProps = ArrayHelpers & {
4 form: FormikProps<any>;
5 name: string;
6};
7export declare type FieldArrayConfig = {
8 /** Really the path to the array field to be updated */
9 name: string;
10 /** Should field array validate the form AFTER array updates/changes? */
11 validateOnChange?: boolean;
12} & SharedRenderProps<FieldArrayRenderProps>;
13export interface ArrayHelpers {
14 /** Imperatively add a value to the end of an array */
15 push: (obj: any) => void;
16 /** Curried fn to add a value to the end of an array */
17 handlePush: (obj: any) => () => void;
18 /** Imperatively swap two values in an array */
19 swap: (indexA: number, indexB: number) => void;
20 /** Curried fn to swap two values in an array */
21 handleSwap: (indexA: number, indexB: number) => () => void;
22 /** Imperatively move an element in an array to another index */
23 move: (from: number, to: number) => void;
24 /** Imperatively move an element in an array to another index */
25 handleMove: (from: number, to: number) => () => void;
26 /** Imperatively insert an element at a given index into the array */
27 insert: (index: number, value: any) => void;
28 /** Curried fn to insert an element at a given index into the array */
29 handleInsert: (index: number, value: any) => () => void;
30 /** Imperatively replace a value at an index of an array */
31 replace: (index: number, value: any) => void;
32 /** Curried fn to replace an element at a given index into the array */
33 handleReplace: (index: number, value: any) => () => void;
34 /** Imperatively add an element to the beginning of an array and return its length */
35 unshift: (value: any) => number;
36 /** Curried fn to add an element to the beginning of an array */
37 handleUnshift: (value: any) => () => void;
38 /** Curried fn to remove an element at an index of an array */
39 handleRemove: (index: number) => () => void;
40 /** Curried fn to remove a value from the end of the array */
41 handlePop: () => () => void;
42 /** Imperatively remove and element at an index of an array */
43 remove<T>(index: number): T | undefined;
44 /** Imperatively remove and return value from the end of the array */
45 pop<T>(): T | undefined;
46}
47/**
48 * Some array helpers!
49 */
50export declare const move: (array: any[], from: number, to: number) => unknown[];
51export declare const swap: (arrayLike: ArrayLike<any>, indexA: number, indexB: number) => unknown[];
52export declare const insert: (arrayLike: ArrayLike<any>, index: number, value: any) => unknown[];
53export declare const replace: (arrayLike: ArrayLike<any>, index: number, value: any) => unknown[];
54export declare const FieldArray: React.ComponentType<FieldArrayConfig>;