UNPKG

@wordpress/editor

Version:
89 lines (77 loc) 3.62 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _lodash = require("lodash"); var _element = require("@wordpress/element"); var _data = require("@wordpress/data"); var _coreData = require("@wordpress/core-data"); var _utils = require("../../utils"); var _store = require("../../store"); /** * External dependencies */ /** * WordPress dependencies */ /** * Internal dependencies */ /** * React hook used to compute the block editor settings to use for the post editor. * * @param {Object} settings EditorProvider settings prop. * @param {boolean} hasTemplate Whether template mode is enabled. * * @return {Object} Block Editor Settings. */ function useBlockEditorSettings(settings, hasTemplate) { const { reusableBlocks, hasUploadPermissions, canUseUnfilteredHTML, isTitleSelected } = (0, _data.useSelect)(select => { const { canUserUseUnfilteredHTML, isPostTitleSelected } = select(_store.store); const { canUser } = select(_coreData.store); return { canUseUnfilteredHTML: canUserUseUnfilteredHTML(), reusableBlocks: select(_coreData.store).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: _element.Platform.select({ web: -1, native: 10 }) }), hasUploadPermissions: (0, _lodash.defaultTo)(canUser('create', 'media'), true), // This selector is only defined on mobile. isTitleSelected: isPostTitleSelected && isPostTitleSelected() }; }, []); const { undo } = (0, _data.useDispatch)(_store.store); return (0, _element.useMemo)(() => ({ ...(0, _lodash.pick)(settings, ['__experimentalBlockDirectory', '__experimentalBlockPatternCategories', '__experimentalBlockPatterns', '__experimentalFeatures', '__experimentalGlobalStylesBaseStyles', '__experimentalGlobalStylesUserEntityId', '__experimentalPreferredStyleVariations', '__experimentalSetIsInserterOpened', 'alignWide', 'allowedBlockTypes', 'bodyPlaceholder', 'codeEditingEnabled', 'colors', 'disableCustomColors', 'disableCustomFontSizes', 'disableCustomGradients', 'enableCustomLineHeight', 'enableCustomSpacing', 'enableCustomUnits', 'focusMode', 'fontSizes', 'gradients', 'hasFixedToolbar', 'hasReducedUI', 'imageDefaultSize', 'imageDimensions', 'imageEditing', 'imageSizes', 'isRTL', 'keepCaretInsideBlock', 'maxWidth', 'onUpdateDefaultBlockStyles', 'styles', 'template', 'templateLock', 'titlePlaceholder', 'supportsLayout', 'widgetTypesToHideFromLegacyWidgetBlock']), mediaUpload: hasUploadPermissions ? _utils.mediaUpload : undefined, __experimentalReusableBlocks: reusableBlocks, __experimentalFetchLinkSuggestions: (search, searchOptions) => (0, _coreData.__experimentalFetchLinkSuggestions)(search, searchOptions, settings), __experimentalFetchRemoteUrlData: url => (0, _coreData.__experimentalFetchRemoteUrlData)(url), __experimentalCanUserUseUnfilteredHTML: canUseUnfilteredHTML, __experimentalUndo: undo, __experimentalShouldInsertAtTheTop: isTitleSelected, outlineMode: hasTemplate }), [settings, hasUploadPermissions, reusableBlocks, canUseUnfilteredHTML, undo, isTitleSelected, hasTemplate]); } var _default = useBlockEditorSettings; exports.default = _default; //# sourceMappingURL=use-block-editor-settings.js.map