Skip to content
This repository was archived by the owner on Aug 23, 2022. It is now read-only.

Commit bb02e2b

Browse files
committed
Making field actions trackable
1 parent 1ef3bbd commit bb02e2b

File tree

1 file changed

+47
-46
lines changed

1 file changed

+47
-46
lines changed

src/actions/field-actions.js

Lines changed: 47 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -4,83 +4,84 @@ import mapValues from '../utils/map-values';
44
import actionTypes from '../action-types';
55
import batchActions from './batch-actions';
66
import { getValidity, getForm, isValid, isInvalid } from '../utils';
7+
import { trackable } from '../utils/track';
78

8-
const focus = model => ({
9+
const focus = trackable((model) => ({
910
type: actionTypes.FOCUS,
1011
model,
11-
});
12+
}));
1213

13-
const blur = model => ({
14+
const blur = trackable((model) => ({
1415
type: actionTypes.BLUR,
1516
model,
16-
});
17+
}));
1718

18-
const setPristine = model => ({
19+
const setPristine = trackable((model) => ({
1920
type: actionTypes.SET_PRISTINE,
2021
model,
21-
});
22+
}));
2223

23-
const setDirty = model => ({
24+
const setDirty = trackable((model) => ({
2425
type: actionTypes.SET_DIRTY,
2526
model,
26-
});
27+
}));
2728

28-
const setInitial = model => ({
29+
const setInitial = trackable((model) => ({
2930
type: actionTypes.SET_INITIAL,
3031
model,
31-
});
32+
}));
3233

33-
const setPending = (model, pending = true) => ({
34+
const setPending = trackable((model, pending = true) => ({
3435
type: actionTypes.SET_PENDING,
3536
model,
3637
pending,
37-
});
38+
}));
3839

39-
const setValidity = (model, validity, options = {}) => ({
40+
const setValidity = trackable((model, validity, options = {}) => ({
4041
type: options.errors
4142
? actionTypes.SET_ERRORS
4243
: actionTypes.SET_VALIDITY,
4344
model,
4445
[options.errors ? 'errors' : 'validity']: validity,
45-
});
46+
}));
4647

47-
const setFieldsValidity = (model, fieldsValidity, options = {}) => ({
48+
const setFieldsValidity = trackable((model, fieldsValidity, options = {}) => ({
4849
type: actionTypes.SET_FIELDS_VALIDITY,
4950
model,
5051
fieldsValidity,
5152
options,
52-
});
53+
}));
5354

54-
const setErrors = (model, errors, options = {}) =>
55+
const setErrors = trackable((model, errors, options = {}) =>
5556
setValidity(model, errors, {
5657
...options,
5758
errors: true,
58-
});
59+
}));
5960

60-
const setFieldsErrors = (model, fieldsErrors, options) =>
61+
const setFieldsErrors = trackable((model, fieldsErrors, options) =>
6162
setFieldsValidity(model, fieldsErrors, {
6263
...options,
6364
errors: true,
64-
});
65+
}));
6566

66-
const resetValidity = (model) => ({
67+
const resetValidity = trackable((model) => ({
6768
type: actionTypes.RESET_VALIDITY,
6869
model,
69-
});
70+
}));
7071

7172
const resetErrors = resetValidity;
7273

73-
const setTouched = model => ({
74+
const setTouched = trackable((model) => ({
7475
type: actionTypes.SET_TOUCHED,
7576
model,
76-
});
77+
}));
7778

78-
const setUntouched = model => ({
79+
const setUntouched = trackable((model) => ({
7980
type: actionTypes.SET_UNTOUCHED,
8081
model,
81-
});
82+
}));
8283

83-
const asyncSetValidity = (model, validator) => (dispatch, getState) => {
84+
const asyncSetValidity = trackable((model, validator) => (dispatch, getState) => {
8485
const value = _get(getState(), model);
8586

8687
dispatch(setPending(model, true));
@@ -97,27 +98,27 @@ const asyncSetValidity = (model, validator) => (dispatch, getState) => {
9798
if (typeof immediateResult !== 'undefined') {
9899
done(immediateResult);
99100
}
100-
};
101+
});
101102

102-
const setSubmitted = (model, submitted = true) => ({
103+
const setSubmitted = trackable((model, submitted = true) => ({
103104
type: actionTypes.SET_SUBMITTED,
104105
model,
105106
submitted,
106-
});
107+
}));
107108

108-
const setSubmitFailed = (model) => ({
109+
const setSubmitFailed = trackable((model) => ({
109110
type: actionTypes.SET_SUBMIT_FAILED,
110111
model,
111-
});
112+
}));
112113

113114

114-
const setViewValue = (model, value) => ({
115+
const setViewValue = trackable((model, value) => ({
115116
type: actionTypes.SET_VIEW_VALUE,
116117
model,
117118
value,
118-
});
119+
}));
119120

120-
const submit = (model, promise, options = {}) => dispatch => {
121+
const submit = trackable((model, promise, options = {}) => dispatch => {
121122
dispatch(setPending(model, true));
122123

123124
const errorsAction = options.fields
@@ -137,29 +138,29 @@ const submit = (model, promise, options = {}) => dispatch => {
137138
});
138139

139140
return promise;
140-
};
141+
});
141142

142-
const submitFields = (model, promise, options = {}) =>
143+
const submitFields = trackable((model, promise, options = {}) =>
143144
submit(model, promise, {
144145
...options,
145146
fields: true,
146-
});
147+
}));
147148

148-
const validate = (model, validators) => (dispatch, getState) => {
149+
const validate = trackable((model, validators) => (dispatch, getState) => {
149150
const value = _get(getState(), model);
150151
const validity = getValidity(validators, value);
151152

152153
dispatch(setValidity(model, validity));
153-
};
154+
});
154155

155-
const validateErrors = (model, errorValidators) => (dispatch, getState) => {
156+
const validateErrors = trackable((model, errorValidators) => (dispatch, getState) => {
156157
const value = _get(getState(), model);
157158
const errors = getValidity(errorValidators, value);
158159

159160
dispatch(setValidity(model, errors, { errors: true }));
160-
};
161+
});
161162

162-
const validateFields = (model, fieldValidators, options = {}) => (dispatch, getState) => {
163+
const validateFields = trackable((model, fieldValidators, options = {}) => (dispatch, getState) => {
163164
const value = _get(getState(), model);
164165

165166
const fieldsValidity = mapValues(fieldValidators, (validator, field) => {
@@ -196,13 +197,13 @@ const validateFields = (model, fieldValidators, options = {}) => (dispatch, getS
196197
: setFieldsValidity;
197198

198199
dispatch(fieldsValiditySetter(model, fieldsValidity));
199-
};
200+
});
200201

201-
const validateFieldsErrors = (model, fieldErrorsValidators, options = {}) =>
202+
const validateFieldsErrors = trackable((model, fieldErrorsValidators, options = {}) =>
202203
validateFields(model, fieldErrorsValidators, {
203204
...options,
204205
errors: true,
205-
});
206+
}));
206207

207208
export default {
208209
asyncSetValidity,

0 commit comments

Comments
 (0)