UNPKG

@atlaskit/editor-plugin-block-menu

Version:

BlockMenu plugin for @atlaskit/editor-core

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