UNPKG

@gechiui/block-editor

Version:
55 lines (51 loc) 1.55 kB
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