From fcb5f74089e637889992ae5ba77985b4ef731de4 Mon Sep 17 00:00:00 2001 From: Daniel Richards Date: Mon, 23 Sep 2019 10:47:16 +0800 Subject: [PATCH 1/4] Fix flipped `hasItems` value --- packages/block-editor/src/components/inserter/menu.js | 9 +++++---- .../inserter-menu-downloadable-blocks-panel/index.js | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/packages/block-editor/src/components/inserter/menu.js b/packages/block-editor/src/components/inserter/menu.js index a6b23c124e5813..4808322603a93a 100644 --- a/packages/block-editor/src/components/inserter/menu.js +++ b/packages/block-editor/src/components/inserter/menu.js @@ -262,9 +262,10 @@ export class InserterMenu extends Component { openPanels, reusableItems, suggestedItems, + filterValue, } = this.state; const isPanelOpen = ( panel ) => openPanels.indexOf( panel ) !== -1; - const hasItems = isEmpty( suggestedItems ) && isEmpty( reusableItems ) && isEmpty( itemsPerCategory ); + const hasItems = ! ( isEmpty( suggestedItems ) && isEmpty( reusableItems ) && isEmpty( itemsPerCategory ) ); const hoveredItemBlockType = hoveredItem ? getBlockType( hoveredItem.name ) : null; // Disable reason (no-autofocus): The inserter menu is a modal display, not one which @@ -362,7 +363,7 @@ export class InserterMenu extends Component { fillProps={ { onSelect, onHover: this.onHover, - filterValue: this.state.filterValue, + filterValue, hasItems, } } > @@ -370,7 +371,7 @@ export class InserterMenu extends Component { if ( fills.length ) { return fills; } - if ( hasItems ) { + if ( ! hasItems ) { return (

{ __( 'No blocks found.' ) }

); @@ -381,7 +382,7 @@ export class InserterMenu extends Component { - { showInserterHelpPanel && ( + { hasItems && showInserterHelpPanel && (
{ hoveredItem && ( <> diff --git a/packages/editor/src/components/inserter-menu-downloadable-blocks-panel/index.js b/packages/editor/src/components/inserter-menu-downloadable-blocks-panel/index.js index d61db3fabffb0d..dd05ab27720721 100644 --- a/packages/editor/src/components/inserter-menu-downloadable-blocks-panel/index.js +++ b/packages/editor/src/components/inserter-menu-downloadable-blocks-panel/index.js @@ -19,7 +19,7 @@ function InserterMenuDownloadableBlocksPanel() { <__experimentalInserterMenuExtension> { ( { onSelect, onHover, filterValue, hasItems } ) => { - if ( ! hasItems ) { + if ( hasItems ) { return null; } From ef0ea34fcbfbf9ea6b9547a86e5fde691db0b72a Mon Sep 17 00:00:00 2001 From: Daniel Richards Date: Mon, 23 Sep 2019 11:02:39 +0800 Subject: [PATCH 2/4] Only show help panel when blocks are available --- packages/block-editor/src/components/inserter/menu.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/block-editor/src/components/inserter/menu.js b/packages/block-editor/src/components/inserter/menu.js index 4808322603a93a..01e6180d575af2 100644 --- a/packages/block-editor/src/components/inserter/menu.js +++ b/packages/block-editor/src/components/inserter/menu.js @@ -264,9 +264,11 @@ export class InserterMenu extends Component { suggestedItems, filterValue, } = this.state; + const isPanelOpen = ( panel ) => openPanels.indexOf( panel ) !== -1; const hasItems = ! ( isEmpty( suggestedItems ) && isEmpty( reusableItems ) && isEmpty( itemsPerCategory ) ); const hoveredItemBlockType = hoveredItem ? getBlockType( hoveredItem.name ) : null; + const hasHelpPanel = hasItems && showInserterHelpPanel; // Disable reason (no-autofocus): The inserter menu is a modal display, not one which // is always visible, and one which already incurs this behavior of autoFocus via @@ -277,7 +279,7 @@ export class InserterMenu extends Component { return (
- { hasItems && showInserterHelpPanel && ( + { hasHelpPanel && (
{ hoveredItem && ( <> From ae562e14e5b5afe5fda5a6ba72bf3ee961fc4293 Mon Sep 17 00:00:00 2001 From: Daniel Richards Date: Mon, 23 Sep 2019 11:03:27 +0800 Subject: [PATCH 3/4] Only render the block directory when a search term has been entered --- .../components/inserter-menu-downloadable-blocks-panel/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/editor/src/components/inserter-menu-downloadable-blocks-panel/index.js b/packages/editor/src/components/inserter-menu-downloadable-blocks-panel/index.js index dd05ab27720721..d19d76ba42ad84 100644 --- a/packages/editor/src/components/inserter-menu-downloadable-blocks-panel/index.js +++ b/packages/editor/src/components/inserter-menu-downloadable-blocks-panel/index.js @@ -19,7 +19,7 @@ function InserterMenuDownloadableBlocksPanel() { <__experimentalInserterMenuExtension> { ( { onSelect, onHover, filterValue, hasItems } ) => { - if ( hasItems ) { + if ( hasItems || ! filterValue ) { return null; } From 086dc29605eb2e8796b6521ea3acf55b87a9594a Mon Sep 17 00:00:00 2001 From: Daniel Richards Date: Thu, 26 Sep 2019 15:19:34 +0800 Subject: [PATCH 4/4] Make boolean logic more readable De Morgan'd, whatever that is Co-Authored-By: Robert Anderson --- packages/block-editor/src/components/inserter/menu.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/block-editor/src/components/inserter/menu.js b/packages/block-editor/src/components/inserter/menu.js index 01e6180d575af2..40a2be3f79149f 100644 --- a/packages/block-editor/src/components/inserter/menu.js +++ b/packages/block-editor/src/components/inserter/menu.js @@ -266,7 +266,7 @@ export class InserterMenu extends Component { } = this.state; const isPanelOpen = ( panel ) => openPanels.indexOf( panel ) !== -1; - const hasItems = ! ( isEmpty( suggestedItems ) && isEmpty( reusableItems ) && isEmpty( itemsPerCategory ) ); + const hasItems = ! isEmpty( suggestedItems ) || ! isEmpty( reusableItems ) || ! isEmpty( itemsPerCategory ); const hoveredItemBlockType = hoveredItem ? getBlockType( hoveredItem.name ) : null; const hasHelpPanel = hasItems && showInserterHelpPanel;