UNPKG

@wordpress/editor

Version:
67 lines (62 loc) 1.91 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = TemplatePartMenuItems; var _data = require("@wordpress/data"); var _blockEditor = require("@wordpress/block-editor"); var _convertToRegular = _interopRequireDefault(require("./convert-to-regular")); var _convertToTemplatePart = _interopRequireDefault(require("./convert-to-template-part")); var _jsxRuntime = require("react/jsx-runtime"); /** * WordPress dependencies */ /** * Internal dependencies */ function TemplatePartMenuItems() { return /*#__PURE__*/(0, _jsxRuntime.jsx)(_blockEditor.BlockSettingsMenuControls, { children: ({ selectedClientIds, onClose }) => /*#__PURE__*/(0, _jsxRuntime.jsx)(TemplatePartConverterMenuItem, { clientIds: selectedClientIds, onClose: onClose }) }); } function TemplatePartConverterMenuItem({ clientIds, onClose }) { const { isContentOnly, blocks } = (0, _data.useSelect)(select => { const { getBlocksByClientId, getBlockEditingMode } = select(_blockEditor.store); return { blocks: getBlocksByClientId(clientIds), isContentOnly: clientIds.length === 1 && getBlockEditingMode(clientIds[0]) === 'contentOnly' }; }, [clientIds]); // Do not show the convert button if the block is in content-only mode. if (isContentOnly) { return null; } // Allow converting a single template part to standard blocks. if (blocks.length === 1 && blocks[0]?.name === 'core/template-part') { return /*#__PURE__*/(0, _jsxRuntime.jsx)(_convertToRegular.default, { clientId: clientIds[0], onClose: onClose }); } return /*#__PURE__*/(0, _jsxRuntime.jsx)(_convertToTemplatePart.default, { clientIds: clientIds, blocks: blocks }); } //# sourceMappingURL=index.js.map