@atlaskit/editor-plugin-block-menu
Version:
BlockMenu plugin for @atlaskit/editor-core
40 lines • 1.58 kB
JavaScript
import React from 'react';
import { useIntl } from 'react-intl';
import { messages as blockMenuMessages } from '@atlaskit/editor-common/messages/block-menu';
import { ToolbarDropdownItem } from '@atlaskit/editor-toolbar/toolbar-dropdown-item';
import { ToolbarDropdownItemSection } from '@atlaskit/editor-toolbar/toolbar-dropdown-item-section';
import { ToolbarNestedDropdownMenu } from '@atlaskit/editor-toolbar/toolbar-nested-dropdown-menu';
import ChevronRightIcon from '@atlaskit/icon/core/chevron-right';
import { useBlockMenuTargetVisibility } from '../block-menu-target-visibility-context';
const FallbackNestedMenu = ({
children
}) => {
const {
formatMessage
} = useIntl();
const targetVisible = useBlockMenuTargetVisibility();
return /*#__PURE__*/React.createElement(ToolbarNestedDropdownMenu, {
isPopupVisible: targetVisible,
elemBefore: undefined,
elemAfter: /*#__PURE__*/React.createElement(ChevronRightIcon, {
label: "",
size: "small"
}),
text: formatMessage(blockMenuMessages.fallbackNestedMenu),
enableMaxHeight: true,
shouldFitContainer: true
}, children);
};
const FallbackMenuItem = () => {
const {
formatMessage
} = useIntl();
return /*#__PURE__*/React.createElement(ToolbarDropdownItem, null, formatMessage(blockMenuMessages.fallbackMenuItem));
};
export const BLOCK_MENU_FALLBACKS = {
'block-menu-nested': FallbackNestedMenu,
'block-menu-section': ({
children
}) => /*#__PURE__*/React.createElement(ToolbarDropdownItemSection, null, children),
'block-menu-item': FallbackMenuItem
};