@wordpress/editor
Version:
Enhanced block editor for WordPress posts.
67 lines (62 loc) • 1.91 kB
JavaScript
;
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