@wordpress/block-editor
Version:
90 lines (87 loc) • 2.82 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "BlockGroupToolbar", {
enumerable: true,
get: function () {
return _toolbar.default;
}
});
exports.ConvertToGroupButton = ConvertToGroupButton;
Object.defineProperty(exports, "useConvertToGroupButtonProps", {
enumerable: true,
get: function () {
return _useConvertToGroupButtonProps.default;
}
});
var _components = require("@wordpress/components");
var _i18n = require("@wordpress/i18n");
var _blocks = require("@wordpress/blocks");
var _data = require("@wordpress/data");
var _keycodes = require("@wordpress/keycodes");
var _store = require("../../store");
var _useConvertToGroupButtonProps = _interopRequireDefault(require("./use-convert-to-group-button-props"));
var _toolbar = _interopRequireDefault(require("./toolbar"));
var _jsxRuntime = require("react/jsx-runtime");
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function ConvertToGroupButton({
clientIds,
isGroupable,
isUngroupable,
onUngroup,
blocksSelection,
groupingBlockName,
onClose = () => {}
}) {
const {
getSelectedBlockClientIds
} = (0, _data.useSelect)(_store.store);
const {
replaceBlocks
} = (0, _data.useDispatch)(_store.store);
const onConvertToGroup = () => {
// Activate the `transform` on the Grouping Block which does the conversion.
const newBlocks = (0, _blocks.switchToBlockType)(blocksSelection, groupingBlockName);
if (newBlocks) {
replaceBlocks(clientIds, newBlocks);
}
};
const onConvertFromGroup = () => {
let innerBlocks = blocksSelection[0].innerBlocks;
if (!innerBlocks.length) {
return;
}
if (onUngroup) {
innerBlocks = onUngroup(blocksSelection[0].attributes, blocksSelection[0].innerBlocks);
}
replaceBlocks(clientIds, innerBlocks);
};
if (!isGroupable && !isUngroupable) {
return null;
}
const selectedBlockClientIds = getSelectedBlockClientIds();
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
children: [isGroupable && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.MenuItem, {
shortcut: selectedBlockClientIds.length > 1 ? _keycodes.displayShortcut.primary('g') : undefined,
onClick: () => {
onConvertToGroup();
onClose();
},
children: (0, _i18n._x)('Group', 'verb')
}), isUngroupable && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.MenuItem, {
onClick: () => {
onConvertFromGroup();
onClose();
},
children: (0, _i18n._x)('Ungroup', 'Ungrouping blocks from within a grouping block back into individual blocks within the Editor')
})]
});
}
//# sourceMappingURL=index.js.map
;