diff --git a/packages/core-data/src/actions.js b/packages/core-data/src/actions.js index b71702a0a3f0ea..ad8e38e0c39459 100644 --- a/packages/core-data/src/actions.js +++ b/packages/core-data/src/actions.js @@ -523,6 +523,26 @@ export const saveEntityRecord = const entityIdKey = entityConfig.key || DEFAULT_ENTITY_KEY; const recordId = record[ entityIdKey ]; + // Evaluate optimized edits. + // (Function edits that should be evaluated on save to avoid expensive computations on every edit.) + for ( const [ key, value ] of Object.entries( record ) ) { + if ( typeof value === 'function' ) { + const evaluatedValue = value( + select.getEditedEntityRecord( kind, name, recordId ) + ); + dispatch.editEntityRecord( + kind, + name, + recordId, + { + [ key ]: evaluatedValue, + }, + { undoIgnore: true } + ); + record[ key ] = evaluatedValue; + } + } + // When called with a theme template ID, trigger the compatibility // logic. if ( @@ -570,26 +590,6 @@ export const saveEntityRecord = ); try { - // Evaluate optimized edits. - // (Function edits that should be evaluated on save to avoid expensive computations on every edit.) - for ( const [ key, value ] of Object.entries( record ) ) { - if ( typeof value === 'function' ) { - const evaluatedValue = value( - select.getEditedEntityRecord( kind, name, recordId ) - ); - dispatch.editEntityRecord( - kind, - name, - recordId, - { - [ key ]: evaluatedValue, - }, - { undoIgnore: true } - ); - record[ key ] = evaluatedValue; - } - } - dispatch( { type: 'SAVE_ENTITY_RECORD_START', kind,