@@ -161,20 +161,13 @@ function entryDraftReducer(
161
161
}
162
162
163
163
case DRAFT_UPDATE : {
164
- let newState = { ...state } ;
165
- if ( ! newState . entry ) {
164
+ if ( ! state . entry ) {
166
165
return state ;
167
166
}
168
167
169
168
const { data } = action . payload ;
170
169
171
- newState = {
172
- ...newState ,
173
- entry : {
174
- ...newState . entry ,
175
- data,
176
- } ,
177
- } ;
170
+ const newState = set ( state , 'entry.data' , data ) ;
178
171
179
172
let hasChanged =
180
173
! isEqual ( newState . entry ?. meta , newState . original ?. meta ) ||
@@ -194,8 +187,7 @@ function entryDraftReducer(
194
187
}
195
188
196
189
case DRAFT_CHANGE_FIELD : {
197
- let newState = { ...state } ;
198
- if ( ! newState . entry ) {
190
+ if ( ! state . entry ) {
199
191
return state ;
200
192
}
201
193
@@ -204,26 +196,21 @@ function entryDraftReducer(
204
196
? [ 'meta' ]
205
197
: ( i18n && getDataPath ( i18n . currentLocale , i18n . defaultLocale ) ) || [ 'data' ] ;
206
198
207
- const newEntry = cloneDeep ( newState . entry ) ;
208
-
209
- newState = {
210
- ...newState ,
211
- entry : set ( newEntry , `${ dataPath . join ( '.' ) } .${ path } ` , value ) ,
212
- } ;
199
+ let newState = set ( state , `entry.${ dataPath . join ( '.' ) } .${ path } ` , value ) ;
213
200
214
201
if ( i18n ) {
215
202
newState = duplicateI18nFields ( newState , field , i18n . locales , i18n . defaultLocale , path ) ;
216
203
}
217
204
218
205
let hasChanged =
219
- ! isEqual ( newEntry ?. meta , newState . original ?. meta ) ||
220
- ! isEqual ( newEntry ?. data , newState . original ?. data ) ;
206
+ ! isEqual ( newState . entry ?. meta , newState . original ?. meta ) ||
207
+ ! isEqual ( newState . entry ?. data , newState . original ?. data ) ;
221
208
222
- const i18nData = newEntry ?. i18n ?? { } ;
209
+ const i18nData = newState . entry ?. i18n ?? { } ;
223
210
for ( const locale in i18nData ) {
224
211
hasChanged =
225
212
hasChanged ||
226
- ! isEqual ( newEntry ?. i18n ?. [ locale ] ?. data , newState . original ?. i18n ?. [ locale ] ?. data ) ;
213
+ ! isEqual ( newState . entry ?. i18n ?. [ locale ] ?. data , newState . original ?. i18n ?. [ locale ] ?. data ) ;
227
214
}
228
215
229
216
return {
0 commit comments