@atlaskit/editor-plugin-selection-extension
Version:
editor-plugin-selection-extension plugin for @atlaskit/editor-core
39 lines • 1.82 kB
JavaScript
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
});
}));
};