UNPKG

@atlaskit/editor-plugin-selection-extension

Version:

editor-plugin-selection-extension plugin for @atlaskit/editor-core

39 lines 1.82 kB
import React from 'react'; import { useSelectionExtensionComponentContext } from '../SelectionExtensionComponentContext'; import { getBlockMenuTriggerExtensionKey } from '../utils/getBlockMenuTriggerExtensionKey'; import { isNestedDropdownMenuConfiguration } from '../utils/menu-items'; import { SelectionExtensionDropdownItem } from './SelectionExtensionDropdownItem'; import { SelectionExtensionNestedDropdownMenu } from './SelectionExtensionNestedDropdownMenu'; export var SelectionExtensionMenuItems = function SelectionExtensionMenuItems(_ref) { var getMenuItems = _ref.getMenuItems; var _useSelectionExtensio = useSelectionExtensionComponentContext(), api = _useSelectionExtensio.api, editorView = _useSelectionExtensio.editorView, extensionKey = _useSelectionExtensio.extensionKey, extensionLocation = _useSelectionExtensio.extensionLocation, extensionSource = _useSelectionExtensio.extensionSource; var extensionMenuItems = getMenuItems({ blockMenuTriggerExtensionKey: getBlockMenuTriggerExtensionKey({ api: api, editorView: editorView }), extensionKey: extensionKey, extensionLocation: extensionLocation, extensionSource: extensionSource }); if (!(extensionMenuItems !== null && extensionMenuItems !== void 0 && extensionMenuItems.length)) { return null; } return /*#__PURE__*/React.createElement(React.Fragment, null, extensionMenuItems.map(function (item) { if (isNestedDropdownMenuConfiguration(item)) { return /*#__PURE__*/React.createElement(SelectionExtensionNestedDropdownMenu, { key: item.key || item.label, nestedDropdownMenu: item }); } return /*#__PURE__*/React.createElement(SelectionExtensionDropdownItem, { key: item.key || item.label, dropdownItem: item }); })); };