UNPKG

@gechiui/block-editor

Version:
67 lines (56 loc) 1.72 kB
import { createElement, Fragment } from "@gechiui/element"; /** * GeChiUI dependencies */ import { MenuItem } from '@gechiui/components'; import { _x } from '@gechiui/i18n'; import { switchToBlockType } from '@gechiui/blocks'; import { useDispatch } from '@gechiui/data'; /** * Internal dependencies */ import { store as blockEditorStore } from '../../store'; import useConvertToGroupButtonProps from './use-convert-to-group-button-props'; function ConvertToGroupButton(_ref) { let { clientIds, isGroupable, isUngroupable, blocksSelection, groupingBlockName, onClose = () => {} } = _ref; const { replaceBlocks } = useDispatch(blockEditorStore); const onConvertToGroup = () => { // Activate the `transform` on the Grouping Block which does the conversion const newBlocks = switchToBlockType(blocksSelection, groupingBlockName); if (newBlocks) { replaceBlocks(clientIds, newBlocks); } }; const onConvertFromGroup = () => { const innerBlocks = blocksSelection[0].innerBlocks; if (!innerBlocks.length) { return; } replaceBlocks(clientIds, innerBlocks); }; if (!isGroupable && !isUngroupable) { return null; } return createElement(Fragment, null, isGroupable && createElement(MenuItem, { onClick: () => { onConvertToGroup(); onClose(); } }, _x('Group', 'verb')), isUngroupable && createElement(MenuItem, { onClick: () => { onConvertFromGroup(); onClose(); } }, _x('Ungroup', 'Ungrouping blocks from within a Group block back into individual blocks within the Editor '))); } export { useConvertToGroupButtonProps, ConvertToGroupButton }; //# sourceMappingURL=index.js.map