From e1606fbd56f823cb0decccb33f837765db3bfd3b Mon Sep 17 00:00:00 2001 From: George Mamadashvili Date: Wed, 7 Jan 2026 14:15:03 +0400 Subject: [PATCH] Patterns: Improve memoization in the overrides panel --- .../src/components/overrides-panel.js | 28 +++++++++---------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/packages/patterns/src/components/overrides-panel.js b/packages/patterns/src/components/overrides-panel.js index 7210ad35755dbe..084af868343155 100644 --- a/packages/patterns/src/components/overrides-panel.js +++ b/packages/patterns/src/components/overrides-panel.js @@ -19,29 +19,27 @@ import { unlock } from '../lock-unlock'; const { BlockQuickNavigation } = unlock( blockEditorPrivateApis ); export default function OverridesPanel() { - const { allClientIds, supportedBlockTypes } = useSelect( + const { allClientIds, supportedBlockTypesRaw } = useSelect( ( select ) => ( { allClientIds: select( blockEditorStore ).getClientIdsWithDescendants(), - supportedBlockTypes: Object.keys( + supportedBlockTypesRaw: select( blockEditorStore ).getSettings() - ?.__experimentalBlockBindingsSupportedAttributes || {} - ), + ?.__experimentalBlockBindingsSupportedAttributes, } ), [] ); const { getBlock } = useSelect( blockEditorStore ); - const clientIdsWithOverrides = useMemo( - () => - allClientIds.filter( ( clientId ) => { - const block = getBlock( clientId ); - return ( - supportedBlockTypes.includes( block.name ) && - isOverridableBlock( block ) - ); - } ), - [ allClientIds, getBlock, supportedBlockTypes ] - ); + const clientIdsWithOverrides = useMemo( () => { + const supportedBlockTypes = Object.keys( supportedBlockTypesRaw ?? {} ); + return allClientIds.filter( ( clientId ) => { + const block = getBlock( clientId ); + return ( + supportedBlockTypes.includes( block.name ) && + isOverridableBlock( block ) + ); + } ); + }, [ allClientIds, getBlock, supportedBlockTypesRaw ] ); if ( ! clientIdsWithOverrides?.length ) { return null;