UNPKG

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