From a4a7feb31306fa2a1a6e85d4568da432968fe6b9 Mon Sep 17 00:00:00 2001 From: Kai Hao Date: Tue, 19 Dec 2023 12:02:36 +0800 Subject: [PATCH] Fix unsaved pattern not reflecting on pattern overrides (#57148) --- packages/block-library/src/block/edit.js | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/block-library/src/block/edit.js b/packages/block-library/src/block/edit.js index e86ed9b59c62b2..fbfef0b4cf1778 100644 --- a/packages/block-library/src/block/edit.js +++ b/packages/block-library/src/block/edit.js @@ -140,7 +140,7 @@ export default function ReusableBlockEdit( { } ) { const registry = useRegistry(); const hasAlreadyRendered = useHasRecursion( ref ); - const { record, hasResolved } = useEntityRecord( + const { record, editedRecord, hasResolved } = useEntityRecord( 'postType', 'wp_block', ref @@ -156,9 +156,13 @@ export default function ReusableBlockEdit( { const { getBlockEditingMode } = useSelect( blockEditorStore ); useEffect( () => { - if ( ! record?.content?.raw ) return; - const initialBlocks = parse( record.content.raw ); + const initialBlocks = + editedRecord.blocks ?? + ( editedRecord.content && typeof editedRecord.content !== 'function' + ? parse( editedRecord.content ) + : [] ); + defaultValuesRef.current = {}; const editingMode = getBlockEditingMode( patternClientId ); registry.batch( () => { setBlockEditingMode( patternClientId, 'default' ); @@ -176,7 +180,7 @@ export default function ReusableBlockEdit( { }, [ __unstableMarkNextChangeAsNotPersistent, patternClientId, - record, + editedRecord, replaceInnerBlocks, registry, getBlockEditingMode,