1 | import { Reducer, Action } from "redux";
|
2 |
|
3 | export interface BaseAction extends Action {
|
4 | meta?: Object;
|
5 | key: String;
|
6 | }
|
7 |
|
8 | export class ReduxForm {
|
9 | key: String;
|
10 | reduxPath: String;
|
11 | actions: FormActions;
|
12 | }
|
13 |
|
14 | export interface Option {
|
15 | reduxPath?: String;
|
16 | }
|
17 |
|
18 | export interface FieldState {
|
19 | name: String;
|
20 | dirty?: Boolean;
|
21 | touched?: Boolean;
|
22 | value?: any;
|
23 | validating?: Boolean;
|
24 | errors?: any;
|
25 | }
|
26 |
|
27 | export interface RegisterField {
|
28 | name: String;
|
29 | initialValue?: any;
|
30 | }
|
31 |
|
32 | export interface Fields {
|
33 | [name: String]: FieldState;
|
34 | }
|
35 |
|
36 | export interface FormState {
|
37 | fields: Fields;
|
38 | meta?: Object;
|
39 | }
|
40 |
|
41 | export interface ResetAction extends BaseAction {
|
42 | payload?: { initialValues: Object };
|
43 | }
|
44 |
|
45 | export interface RegisterFieldAction extends BaseAction {
|
46 | payload: RegisterField;
|
47 | }
|
48 |
|
49 | export interface RegisterMutilFieldsAction extends BaseAction {
|
50 | payload: { fields: [RegisterField] };
|
51 | }
|
52 |
|
53 | export interface ChangeFieldAction extends BaseAction {
|
54 | payload: FieldState;
|
55 | }
|
56 |
|
57 | export interface ChangeMutilFieldsAction extends BaseAction {
|
58 | payload: { fields: [FieldState] };
|
59 | }
|
60 |
|
61 | export interface FormActions {
|
62 | reset: (initialValues: Object, meta?: Object) => ResetAction;
|
63 | registerField: (name: String, meta?: Object) => RegisterFieldAction;
|
64 | registerMutilFields: (
|
65 | fields: [RegisterField],
|
66 | meta?: Object
|
67 | ) => RegisterMutilFieldsAction;
|
68 | changeField: (
|
69 | name: String,
|
70 | fieldState: FieldState,
|
71 | meta?: Object
|
72 | ) => SetAction;
|
73 | changeMutilFields: (
|
74 | fields: [FieldState],
|
75 | meta?: Object
|
76 | ) => ChangeMutilFieldsAction;
|
77 | }
|
78 |
|
79 | export function createFormActions(key: String, opts: Option): FormActions;
|
80 |
|
81 | export function isForm(action: BaseAction): Boolean;
|
82 |
|
83 | export const formReducer: Reducer;
|
84 |
|
85 | export type FormSelector = (state: Object) => FormState;
|
86 |
|
87 | export function createFormSelector(
|
88 | key: String,
|
89 | reduxPath?: String
|
90 | ): FormSelector;
|
91 |
|
92 | export const FormTypes: {
|
93 | reset: String;
|
94 | registerField: String;
|
95 | registerMutilFields: String;
|
96 | changeField: String;
|
97 | changeMutilFields: String;
|
98 | };
|