@atlaskit/editor-plugin-block-menu
Version:
BlockMenu plugin for @atlaskit/editor-core
37 lines (36 loc) • 1.56 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.BlockMenuComponent = void 0;
var _react = _interopRequireDefault(require("react"));
var _BlockMenuComponents = require("./BlockMenuComponents");
var _utils = require("./utils");
/**
* Renders the given registered component based on its type
*/
var BlockMenuComponent = exports.BlockMenuComponent = function BlockMenuComponent(_ref) {
var registeredComponent = _ref.registeredComponent,
childrenMap = _ref.childrenMap,
fallbacks = _ref.fallbacks;
if (!(0, _utils.willComponentRender)(registeredComponent, childrenMap)) {
return null;
}
if (registeredComponent.type === 'block-menu-item') {
var ItemComponent = registeredComponent.component || fallbacks['block-menu-item'];
return /*#__PURE__*/_react.default.createElement(ItemComponent, {
key: registeredComponent.key
});
}
var ParentComponent = registeredComponent.component || fallbacks[registeredComponent.type];
var childrenMapKey = (0, _utils.getChildrenMapKey)(registeredComponent.key, registeredComponent.type);
var registeredComponents = childrenMap.get(childrenMapKey);
return /*#__PURE__*/_react.default.createElement(ParentComponent, {
key: registeredComponent.key
}, /*#__PURE__*/_react.default.createElement(_BlockMenuComponents.BlockMenuComponents, {
registeredComponents: registeredComponents,
childrenMap: childrenMap,
fallbacks: fallbacks
}));
};