UNPKG

@atlaskit/editor-plugin-mentions

Version:

Mentions plugin for @atlaskit/editor-core

35 lines 1.59 kB
import React, { useCallback } from 'react'; import { useIntl } from 'react-intl'; import { INPUT_METHOD } from '@atlaskit/editor-common/analytics'; import { toolbarInsertBlockMessages as messages } from '@atlaskit/editor-common/messages'; import { QuickInsertMenuItem } from '@atlaskit/editor-common/quick-insert/menu-item'; import MentionIcon from '@atlaskit/icon/core/mention'; import { mentionPluginKey } from '../../pm-plugins/key'; export var MentionQuickInsertMenuItem = function MentionQuickInsertMenuItem(_ref) { var api = _ref.api, typeAhead = _ref.typeAhead; var _useIntl = useIntl(), formatMessage = _useIntl.formatMessage; var onSelect = useCallback(function (_ref2) { var _mentionPluginKey$get, _api$typeAhead; var editorView = _ref2.editorView, insert = _ref2.insert; if (((_mentionPluginKey$get = mentionPluginKey.getState(editorView.state)) === null || _mentionPluginKey$get === void 0 ? void 0 : _mentionPluginKey$get.canInsertMention) === false) { return false; } var tr = insert(undefined); api === null || api === void 0 || (_api$typeAhead = api.typeAhead) === null || _api$typeAhead === void 0 || _api$typeAhead.actions.openAtTransaction({ triggerHandler: typeAhead, inputMethod: INPUT_METHOD.QUICK_INSERT })(tr); return tr; }, [api, typeAhead]); return /*#__PURE__*/React.createElement(QuickInsertMenuItem, { iconBefore: /*#__PURE__*/React.createElement(MentionIcon, { label: "" }), onSelect: onSelect, shortcut: "@", title: formatMessage(messages.mention) }); };