@gechiui/block-editor
Version:
68 lines (57 loc) • 1.88 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _element = require("@gechiui/element");
var _i18n = require("@gechiui/i18n");
var _components = require("@gechiui/components");
var _blocks = require("@gechiui/blocks");
var _blockIcon = _interopRequireDefault(require("../block-icon"));
var _previewBlockPopover = _interopRequireDefault(require("./preview-block-popover"));
/**
* GeChiUI dependencies
*/
/**
* Internal dependencies
*/
const BlockTransformationsMenu = _ref => {
let {
className,
possibleBlockTransformations,
onSelect,
blocks
} = _ref;
const [hoveredTransformItemName, setHoveredTransformItemName] = (0, _element.useState)();
return (0, _element.createElement)(_components.MenuGroup, {
label: (0, _i18n.__)('转换为'),
className: className
}, hoveredTransformItemName && (0, _element.createElement)(_previewBlockPopover.default, {
blocks: (0, _blocks.switchToBlockType)(blocks, hoveredTransformItemName)
}), possibleBlockTransformations.map(item => {
const {
name,
icon,
title,
isDisabled
} = item;
return (0, _element.createElement)(_components.MenuItem, {
key: name,
className: (0, _blocks.getBlockMenuDefaultClassName)(name),
onClick: event => {
event.preventDefault();
onSelect(name);
},
disabled: isDisabled,
onMouseLeave: () => setHoveredTransformItemName(null),
onMouseEnter: () => setHoveredTransformItemName(name)
}, (0, _element.createElement)(_blockIcon.default, {
icon: icon,
showColors: true
}), title);
}));
};
var _default = BlockTransformationsMenu;
exports.default = _default;
//# sourceMappingURL=block-transformations-menu.js.map