@atlaskit/editor-plugin-selection-extension
Version:
editor-plugin-selection-extension plugin for @atlaskit/editor-core
41 lines • 1.49 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 const SelectionExtensionMenuItems = ({
getMenuItems
}) => {
const {
api,
editorView,
extensionKey,
extensionLocation,
extensionSource
} = useSelectionExtensionComponentContext();
const extensionMenuItems = getMenuItems({
blockMenuTriggerExtensionKey: getBlockMenuTriggerExtensionKey({
api,
editorView
}),
extensionKey,
extensionLocation,
extensionSource
});
if (!(extensionMenuItems !== null && extensionMenuItems !== void 0 && extensionMenuItems.length)) {
return null;
}
return /*#__PURE__*/React.createElement(React.Fragment, null, extensionMenuItems.map(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
});
}));
};