UNPKG

@gechiui/block-editor

Version:
47 lines (45 loc) 1.48 kB
import { createElement } from "@gechiui/element"; /** * GeChiUI dependencies */ import { __ } from '@gechiui/i18n'; import { MenuGroup } from '@gechiui/components'; import { useState } from '@gechiui/element'; import { useSelect } from '@gechiui/data'; import { cloneBlock, getBlockFromExample, store as blocksStore } from '@gechiui/blocks'; /** * Internal dependencies */ import BlockStyles from '../block-styles'; import PreviewBlockPopover from './preview-block-popover'; export default function BlockStylesMenu(_ref) { let { hoveredBlock, onSwitch } = _ref; const { name, clientId } = hoveredBlock; const [hoveredClassName, setHoveredClassName] = useState(); const blockType = useSelect(select => select(blocksStore).getBlockType(name), [name]); return createElement(MenuGroup, { label: __('样式'), className: "block-editor-block-switcher__styles__menugroup" }, hoveredClassName && createElement(PreviewBlockPopover, { blocks: blockType && blockType.example ? getBlockFromExample(blockType.name, { attributes: { ...blockType.example.attributes, className: hoveredClassName }, innerBlocks: blockType.example.innerBlocks }) : cloneBlock(hoveredBlock, { className: hoveredClassName }) }), createElement(BlockStyles, { clientId: clientId, onSwitch: onSwitch, onHoverClassName: setHoveredClassName, itemRole: "menuitem" })); } //# sourceMappingURL=block-styles-menu.js.map