UNPKG

@atlaskit/editor-plugin-block-menu

Version:

BlockMenu plugin for @atlaskit/editor-core

30 lines 1.26 kB
import React from 'react'; import { BlockMenuComponents } from './BlockMenuComponents'; import { getChildrenMapKey, willComponentRender } from './utils'; /** * Renders the given registered component based on its type */ export var BlockMenuComponent = function BlockMenuComponent(_ref) { var registeredComponent = _ref.registeredComponent, childrenMap = _ref.childrenMap, fallbacks = _ref.fallbacks; if (!willComponentRender(registeredComponent, childrenMap)) { return null; } if (registeredComponent.type === 'block-menu-item') { var ItemComponent = registeredComponent.component || fallbacks['block-menu-item']; return /*#__PURE__*/React.createElement(ItemComponent, { key: registeredComponent.key }); } var ParentComponent = registeredComponent.component || fallbacks[registeredComponent.type]; var childrenMapKey = getChildrenMapKey(registeredComponent.key, registeredComponent.type); var registeredComponents = childrenMap.get(childrenMapKey); return /*#__PURE__*/React.createElement(ParentComponent, { key: registeredComponent.key }, /*#__PURE__*/React.createElement(BlockMenuComponents, { registeredComponents: registeredComponents, childrenMap: childrenMap, fallbacks: fallbacks })); };