diff --git a/packages/dataviews/src/view-grid.js b/packages/dataviews/src/view-grid.js index 14024163878d1d..44ab1822a60750 100644 --- a/packages/dataviews/src/view-grid.js +++ b/packages/dataviews/src/view-grid.js @@ -12,6 +12,7 @@ import { __experimentalVStack as VStack, Tooltip, } from '@wordpress/components'; +import { __ } from '@wordpress/i18n'; import { useAsyncList } from '@wordpress/compose'; import { useState } from '@wordpress/element'; @@ -128,6 +129,7 @@ export default function ViewGrid( { fields, view, actions, + isLoading, getItemId, deferredRendering, selection, @@ -148,29 +150,45 @@ export default function ViewGrid( { ); const shownData = useAsyncList( data, { step: 3 } ); const usedData = deferredRendering ? shownData : data; + const hasData = !! usedData?.length; return ( - - { usedData.map( ( item ) => { - return ( - - ); - } ) } - + <> + { hasData && ( + + { usedData.map( ( item ) => { + return ( + + ); + } ) } + + ) } + { ! hasData && ( +
+

{ isLoading ? __( 'Loading…' ) : __( 'No results' ) }

+
+ ) } + ); } diff --git a/packages/edit-site/src/components/page-patterns/use-patterns.js b/packages/edit-site/src/components/page-patterns/use-patterns.js index a0b82247c85a6d..b099b70b36fe1a 100644 --- a/packages/edit-site/src/components/page-patterns/use-patterns.js +++ b/packages/edit-site/src/components/page-patterns/use-patterns.js @@ -111,6 +111,7 @@ const selectTemplatePartsAsPatterns = createSelector( const selectThemePatterns = createSelector( ( select ) => { const { getSettings } = unlock( select( editSiteStore ) ); + const { getIsResolving } = select( coreStore ); const settings = getSettings(); const blockPatterns = settings.__experimentalAdditionalBlockPatterns ?? @@ -136,19 +137,23 @@ const selectThemePatterns = createSelector( __unstableSkipMigrationLogs: true, } ), } ) ); - - return { patterns, isResolving: false }; + return { patterns, isResolving: getIsResolving( 'getBlockPatterns' ) }; }, ( select ) => [ select( coreStore ).getBlockPatterns(), + select( coreStore ).getIsResolving( 'getBlockPatterns' ), unlock( select( editSiteStore ) ).getSettings(), ] ); const selectPatterns = createSelector( ( select, categoryId, syncStatus, search = '' ) => { - const { patterns: themePatterns } = selectThemePatterns( select ); - const { patterns: userPatterns } = selectUserPatterns( select ); + const { + patterns: themePatterns, + isResolving: isResolvingThemePatterns, + } = selectThemePatterns( select ); + const { patterns: userPatterns, isResolving: isResolvingUserPatterns } = + selectUserPatterns( select ); let patterns = [ ...( themePatterns || [] ), @@ -176,7 +181,10 @@ const selectPatterns = createSelector( hasCategory: ( item ) => ! item.hasOwnProperty( 'categories' ), } ); } - return { patterns, isResolving: false }; + return { + patterns, + isResolving: isResolvingThemePatterns || isResolvingUserPatterns, + }; }, ( select ) => [ selectThemePatterns( select ),