@atlaskit/editor-plugin-selection-extension
Version:
editor-plugin-selection-extension plugin for @atlaskit/editor-core
68 lines (67 loc) • 3.47 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.SelectionExtensionNestedDropdownMenu = void 0;
var _react = _interopRequireDefault(require("react"));
var _analytics = require("@atlaskit/editor-common/analytics");
var _blockMenu = require("@atlaskit/editor-common/block-menu");
var _editorToolbar = require("@atlaskit/editor-toolbar");
var _chevronRight = _interopRequireDefault(require("@atlaskit/icon/core/chevron-right"));
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
var _SelectionExtensionComponentContext = require("../SelectionExtensionComponentContext");
var _SelectionExtensionDropdownItem = require("./SelectionExtensionDropdownItem");
var ChildItems = function ChildItems(_ref) {
var nestedDropdownMenu = _ref.nestedDropdownMenu;
var childItems = nestedDropdownMenu.getMenuItems();
return /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarDropdownItemSection, null, childItems.map(function (dropdownItem) {
return /*#__PURE__*/_react.default.createElement(_SelectionExtensionDropdownItem.SelectionExtensionDropdownItem, {
key: dropdownItem.key || dropdownItem.label,
dropdownItem: dropdownItem
});
}));
};
var SelectionExtensionNestedDropdownMenu = exports.SelectionExtensionNestedDropdownMenu = function SelectionExtensionNestedDropdownMenu(_ref2) {
var nestedDropdownMenu = _ref2.nestedDropdownMenu;
var IconComponent = nestedDropdownMenu.icon;
var _useSelectionExtensio = (0, _SelectionExtensionComponentContext.useSelectionExtensionComponentContext)(),
api = _useSelectionExtensio.api,
extensionKey = _useSelectionExtensio.extensionKey,
extensionSource = _useSelectionExtensio.extensionSource,
extensionLocation = _useSelectionExtensio.extensionLocation;
var handleClick = function handleClick() {
var _api$analytics;
(_api$analytics = api.analytics) === null || _api$analytics === void 0 || _api$analytics.actions.fireAnalyticsEvent({
action: _analytics.ACTION.CLICKED,
actionSubject: _analytics.ACTION_SUBJECT.BUTTON,
actionSubjectId: _analytics.ACTION_SUBJECT_ID.EDITOR_PLUGIN_SELECTION_EXTENSION_DROPDOWN,
eventType: _analytics.EVENT_TYPE.TRACK,
attributes: {
extensionKey: extensionKey,
extensionSource: extensionSource,
extensionLocation: extensionLocation,
extensionElement: 'nested-dropdown',
extensionItemKey: nestedDropdownMenu.key
}
});
};
return /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarNestedDropdownMenu, {
testId: _blockMenu.EXTENSION_MENU_ITEM_TEST_ID,
text: nestedDropdownMenu.label,
elemBefore: IconComponent ? /*#__PURE__*/_react.default.createElement(IconComponent, {
label: "",
size: "small"
}) : undefined,
elemAfter: /*#__PURE__*/_react.default.createElement(_chevronRight.default, {
label: "",
size: "small"
}),
onClick: handleClick,
dropdownTestId: "editor-selection-extension-menu",
shouldTitleWrap: (0, _platformFeatureFlags.fg)('platform_editor_block_menu_v2_patch_2') ? false : undefined,
tooltipContent: (0, _platformFeatureFlags.fg)('platform_editor_block_menu_v2_patch_2') ? nestedDropdownMenu.label : undefined
}, /*#__PURE__*/_react.default.createElement(ChildItems, {
nestedDropdownMenu: nestedDropdownMenu
}));
};