diff --git a/packages/editor/src/components/inserter/menu.js b/packages/editor/src/components/inserter/menu.js index 16e763dba24994..96fb235ff2c47f 100644 --- a/packages/editor/src/components/inserter/menu.js +++ b/packages/editor/src/components/inserter/menu.js @@ -48,10 +48,12 @@ const MAX_SUGGESTED_ITEMS = 9; export const searchItems = ( items, searchTerm ) => { const normalizedSearchTerm = normalizeTerm( searchTerm ); const matchSearch = ( string ) => normalizeTerm( string ).indexOf( normalizedSearchTerm ) !== -1; + const categories = getCategories(); - return items.filter( ( item ) => - matchSearch( item.title ) || some( item.keywords, matchSearch ) - ); + return items.filter( ( item ) => { + const itemCategory = find( categories, { slug: item.category } ); + return matchSearch( item.title ) || some( item.keywords, matchSearch ) || ( itemCategory && matchSearch( itemCategory.title ) ); + } ); }; /** diff --git a/packages/editor/src/components/inserter/test/menu.js b/packages/editor/src/components/inserter/test/menu.js index f1a6b39e284c04..7538f1639b1fca 100644 --- a/packages/editor/src/components/inserter/test/menu.js +++ b/packages/editor/src/components/inserter/test/menu.js @@ -338,6 +338,12 @@ describe( 'searchItems', () => { ); } ); + it( 'should search items using the categories', () => { + expect( searchItems( items, 'LAYOUT' ) ).toEqual( + [ moreItem ] + ); + } ); + it( 'should ignore a leading slash on a search term', () => { expect( searchItems( items, '/GOOGL' ) ).toEqual( [ youtubeItem ]