UNPKG

@wordpress/editor

Version:
49 lines (42 loc) 1.48 kB
/** * WordPress dependencies */ import { useMemo } from '@wordpress/element'; import { useSelect } from '@wordpress/data'; import { store as coreStore } from '@wordpress/core-data'; /** * Internal dependencies */ import useBlockEditorSettings from './use-block-editor-settings.js'; import { store as editorStore } from '../../store'; const EMPTY_BLOCKS_LIST = []; function useNativeBlockEditorSettings( settings, postType, postId ) { const editorSettings = useBlockEditorSettings( settings, postType, postId ); const supportReusableBlock = settings.capabilities?.reusableBlock === true; const { reusableBlocks, isTitleSelected } = useSelect( ( select ) => { return { reusableBlocks: supportReusableBlock ? select( coreStore ).getEntityRecords( 'postType', 'wp_block', // Unbounded queries are not supported on native so as a workaround, we set per_page with the maximum value that native version can handle. // Related issue: https://github.com/wordpress-mobile/gutenberg-mobile/issues/2661 { per_page: 100 } ) : EMPTY_BLOCKS_LIST, isTitleSelected: select( editorStore ).isPostTitleSelected(), }; }, [ supportReusableBlock ] ); return useMemo( () => ( { ...editorSettings, __experimentalReusableBlocks: reusableBlocks, __experimentalShouldInsertAtTheTop: isTitleSelected, } ), [ editorSettings, reusableBlocks, isTitleSelected ] ); } export default useNativeBlockEditorSettings;