@gechiui/block-editor
Version:
55 lines (51 loc) • 1.55 kB
JavaScript
import { createElement } from "@gechiui/element";
/**
* GeChiUI dependencies
*/
import { __ } from '@gechiui/i18n';
import { MenuGroup, MenuItem } from '@gechiui/components';
import { getBlockMenuDefaultClassName, switchToBlockType } from '@gechiui/blocks';
import { useState } from '@gechiui/element';
/**
* Internal dependencies
*/
import BlockIcon from '../block-icon';
import PreviewBlockPopover from './preview-block-popover';
const BlockTransformationsMenu = _ref => {
let {
className,
possibleBlockTransformations,
onSelect,
blocks
} = _ref;
const [hoveredTransformItemName, setHoveredTransformItemName] = useState();
return createElement(MenuGroup, {
label: __('转换为'),
className: className
}, hoveredTransformItemName && createElement(PreviewBlockPopover, {
blocks: switchToBlockType(blocks, hoveredTransformItemName)
}), possibleBlockTransformations.map(item => {
const {
name,
icon,
title,
isDisabled
} = item;
return createElement(MenuItem, {
key: name,
className: getBlockMenuDefaultClassName(name),
onClick: event => {
event.preventDefault();
onSelect(name);
},
disabled: isDisabled,
onMouseLeave: () => setHoveredTransformItemName(null),
onMouseEnter: () => setHoveredTransformItemName(name)
}, createElement(BlockIcon, {
icon: icon,
showColors: true
}), title);
}));
};
export default BlockTransformationsMenu;
//# sourceMappingURL=block-transformations-menu.js.map