@@ -7,45 +7,37 @@ Object.defineProperty(exports, "__esModule", {
7
7
} ) ;
8
8
exports . getField = exports . initialFormState = exports . initialFieldState = exports . createFormReducer = undefined ;
9
9
10
+ var _every = require ( 'lodash/every' ) ;
11
+
12
+ var _every2 = _interopRequireDefault ( _every ) ;
13
+
10
14
var _get = require ( 'lodash/get' ) ;
11
15
12
16
var _get2 = _interopRequireDefault ( _get ) ;
13
17
14
- var _set = require ( 'lodash/set ' ) ;
18
+ var _icepick = require ( 'icepick ' ) ;
15
19
16
- var _set2 = _interopRequireDefault ( _set ) ;
20
+ var _icepick2 = _interopRequireDefault ( _icepick ) ;
17
21
18
- var _merge = require ( 'lodash/merge ' ) ;
22
+ var _isBoolean = require ( 'lodash/isBoolean ' ) ;
19
23
20
- var _merge2 = _interopRequireDefault ( _merge ) ;
24
+ var _isBoolean2 = _interopRequireDefault ( _isBoolean ) ;
21
25
22
- var _toPath = require ( 'lodash/toPath ' ) ;
26
+ var _isEqual = require ( 'lodash/isEqual ' ) ;
23
27
24
- var _toPath2 = _interopRequireDefault ( _toPath ) ;
28
+ var _isEqual2 = _interopRequireDefault ( _isEqual ) ;
25
29
26
30
var _isPlainObject = require ( 'lodash/isPlainObject' ) ;
27
31
28
32
var _isPlainObject2 = _interopRequireDefault ( _isPlainObject ) ;
29
33
30
- var _isBoolean = require ( 'lodash/isBoolean' ) ;
31
-
32
- var _isBoolean2 = _interopRequireDefault ( _isBoolean ) ;
33
-
34
34
var _mapValues = require ( 'lodash/mapValues' ) ;
35
35
36
36
var _mapValues2 = _interopRequireDefault ( _mapValues ) ;
37
37
38
- var _every = require ( 'lodash/every' ) ;
39
-
40
- var _every2 = _interopRequireDefault ( _every ) ;
41
-
42
- var _cloneDeep = require ( 'lodash/cloneDeep' ) ;
43
-
44
- var _cloneDeep2 = _interopRequireDefault ( _cloneDeep ) ;
45
-
46
- var _isEqual = require ( 'lodash/isEqual' ) ;
38
+ var _toPath = require ( 'lodash/toPath' ) ;
47
39
48
- var _isEqual2 = _interopRequireDefault ( _isEqual ) ;
40
+ var _toPath2 = _interopRequireDefault ( _toPath ) ;
49
41
50
42
var _actionTypes = require ( '../action-types' ) ;
51
43
@@ -59,10 +51,10 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
59
51
60
52
function setField ( state , localPath , props ) {
61
53
if ( ! localPath . length ) {
62
- return ( 0 , _merge2 . default ) ( ( 0 , _cloneDeep2 . default ) ( state ) , props ) ;
63
- } ;
54
+ return _icepick2 . default . merge ( state , props ) ;
55
+ }
64
56
65
- return ( 0 , _merge2 . default ) ( ( 0 , _cloneDeep2 . default ) ( state ) , {
57
+ return _icepick2 . default . merge ( state , {
66
58
fields : _defineProperty ( { } , localPath . join ( '.' ) , _extends ( { } , initialFieldState , getField ( state , localPath ) , props ) )
67
59
} ) ;
68
60
}
@@ -115,102 +107,98 @@ function createFormReducer(model) {
115
107
116
108
var localPath = path . slice ( modelPath . length ) ;
117
109
118
- var form = ( 0 , _cloneDeep2 . default ) ( state ) ;
119
-
120
110
switch ( action . type ) {
121
111
case actionTypes . FOCUS :
122
- return setField ( form , localPath , {
112
+ return setField ( state , localPath , {
123
113
focus : true ,
124
114
blur : false
125
115
} ) ;
126
116
127
117
case actionTypes . CHANGE :
128
118
case actionTypes . SET_DIRTY :
129
- ( 0 , _merge2 . default ) ( form , {
119
+ state = _icepick2 . default . merge ( state , {
130
120
dirty : true ,
131
121
pristine : false
132
122
} ) ;
133
123
134
- return setField ( form , localPath , {
124
+ return setField ( state , localPath , {
135
125
dirty : true ,
136
126
pristine : false
137
127
} ) ;
138
128
139
129
case actionTypes . BLUR :
140
130
case actionTypes . SET_TOUCHED :
141
- return setField ( form , localPath , {
131
+ return setField ( state , localPath , {
142
132
touched : true ,
143
133
untouched : false ,
144
134
focus : false ,
145
135
blur : true
146
136
} ) ;
147
137
148
138
case actionTypes . SET_PENDING :
149
- return setField ( form , localPath , {
139
+ return setField ( state , localPath , {
150
140
pending : action . pending ,
151
141
submitted : false
152
142
} ) ;
153
143
154
144
case actionTypes . SET_VALIDITY :
155
- var errors = ( 0 , _isPlainObject2 . default ) ( action . validity ) ? _extends ( { } , getField ( form , localPath ) . errors , ( 0 , _mapValues2 . default ) ( action . validity , function ( valid ) {
145
+ var errors = ( 0 , _isPlainObject2 . default ) ( action . validity ) ? _extends ( { } , getField ( state , localPath ) . errors , ( 0 , _mapValues2 . default ) ( action . validity , function ( valid ) {
156
146
return ! valid ;
157
147
} ) ) : ! action . validity ;
158
148
159
- form = setField ( form , localPath , {
149
+ state = setField ( state , localPath , {
160
150
errors : errors ,
161
151
valid : ( 0 , _isBoolean2 . default ) ( errors ) ? errors : ( 0 , _every2 . default ) ( errors , function ( error ) {
162
152
return ! error ;
163
153
} )
164
154
} ) ;
165
155
166
- return ( 0 , _merge2 . default ) ( form , {
167
- valid : ( 0 , _every2 . default ) ( ( 0 , _mapValues2 . default ) ( form . fields , function ( field ) {
156
+ return _icepick2 . default . merge ( state , {
157
+ valid : ( 0 , _every2 . default ) ( ( 0 , _mapValues2 . default ) ( state . fields , function ( field ) {
168
158
return field . valid ;
169
- } ) ) && ( 0 , _every2 . default ) ( form . errors , function ( error ) {
159
+ } ) ) && ( 0 , _every2 . default ) ( state . errors , function ( error ) {
170
160
return ! error ;
171
161
} )
172
162
} ) ;
173
163
174
- break ;
175
-
176
164
case actionTypes . SET_PRISTINE :
177
- form = setField ( form , localPath , {
165
+ state = setField ( state , localPath , {
178
166
dirty : false ,
179
167
pristine : true
180
168
} ) ;
181
169
182
- var formIsPristine = ( 0 , _every2 . default ) ( ( 0 , _mapValues2 . default ) ( form . fields , function ( field ) {
170
+ var formIsPristine = ( 0 , _every2 . default ) ( ( 0 , _mapValues2 . default ) ( state . fields , function ( field ) {
183
171
return field . pristine ;
184
172
} ) ) ;
185
173
186
- return ( 0 , _merge2 . default ) ( form , {
174
+ return _icepick2 . default . merge ( state , {
187
175
pristine : formIsPristine ,
188
176
dirty : ! formIsPristine
189
177
} ) ;
190
178
191
179
case actionTypes . SET_UNTOUCHED :
192
- return setField ( form , localPath , {
180
+ return setField ( state , localPath , {
193
181
touched : false ,
194
182
untouched : true
195
183
} ) ;
196
184
197
185
case actionTypes . SET_SUBMITTED :
198
- return setField ( form , localPath , {
186
+ return setField ( state , localPath , {
199
187
pending : false ,
200
188
submitted : ! ! action . submitted
201
189
} ) ;
202
190
203
191
case actionTypes . SET_INITIAL :
204
192
case actionTypes . RESET :
205
- return setField ( form , localPath , initialFieldState ) ;
193
+ return setField ( state , localPath , initialFieldState ) ;
206
194
207
195
case actionTypes . SET_VIEW_VALUE :
208
- return setField ( form , localPath , {
196
+ return setField ( state , localPath , {
209
197
viewValue : action . value
210
198
} ) ;
211
199
212
200
default :
213
- return form ;
201
+ return state ;
214
202
}
215
203
} ;
216
204
}
0 commit comments