UNPKG

@wordpress/block-editor

Version:
90 lines (87 loc) 2.82 kB
"use strict"; 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