@atlaskit/editor-plugin-mentions 4.7.8 → 4.7.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,20 @@
1
1
  # @atlaskit/editor-plugin-mentions
2
2
 
3
+ ## 4.7.10
4
+
5
+ ### Patch Changes
6
+
7
+ - [#175895](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/175895)
8
+ [`6165a5dc5b6b1`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/6165a5dc5b6b1) -
9
+ Remove deprecated path for react version of mentions
10
+ - Updated dependencies
11
+
12
+ ## 4.7.9
13
+
14
+ ### Patch Changes
15
+
16
+ - Updated dependencies
17
+
3
18
  ## 4.7.8
4
19
 
5
20
  ### Patch Changes
@@ -8,14 +8,11 @@ exports.ACTIONS = void 0;
8
8
  exports.createMentionPlugin = createMentionPlugin;
9
9
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
10
  var _analytics = require("@atlaskit/editor-common/analytics");
11
- var _reactNodeView = require("@atlaskit/editor-common/react-node-view");
12
11
  var _safePlugin = require("@atlaskit/editor-common/safe-plugin");
13
12
  var _utils = require("@atlaskit/editor-prosemirror/utils");
14
13
  var _resource = require("@atlaskit/mention/resource");
15
14
  var _types = require("@atlaskit/mention/types");
16
15
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
17
- var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
18
- var _mention = require("../nodeviews/mention");
19
16
  var _mentionNodeView = require("../nodeviews/mentionNodeView");
20
17
  var _types2 = require("../types");
21
18
  var _key = require("./key");
@@ -26,7 +23,7 @@ var ACTIONS = exports.ACTIONS = {
26
23
  SET_PROVIDER: 'SET_PROVIDER'
27
24
  };
28
25
  var PACKAGE_NAME = "@atlaskit/editor-plugin-mentions";
29
- var PACKAGE_VERSION = "4.7.7";
26
+ var PACKAGE_VERSION = "4.7.9";
30
27
  var setProvider = function setProvider(provider) {
31
28
  return function (state, dispatch) {
32
29
  if (dispatch) {
@@ -102,21 +99,11 @@ function createMentionPlugin(_ref) {
102
99
  props: {
103
100
  nodeViews: {
104
101
  mention: function mention(node, view, getPos, decorations, innerDecorations) {
105
- return (0, _experiments.editorExperiment)('platform_editor_vanilla_dom', true, {
106
- exposure: true
107
- }) ? new _mentionNodeView.MentionNodeView(node, {
102
+ return new _mentionNodeView.MentionNodeView(node, {
108
103
  options: options,
109
104
  api: api,
110
105
  portalProviderAPI: pmPluginFactoryParams.portalProviderAPI
111
- }) : (0, _reactNodeView.getInlineNodeViewProducer)({
112
- pmPluginFactoryParams: pmPluginFactoryParams,
113
- Component: _mention.MentionNodeView,
114
- extraComponentProps: {
115
- providerFactory: pmPluginFactoryParams.providerFactory,
116
- pluginInjectionApi: api,
117
- options: options
118
- }
119
- })(node, view, getPos, decorations);
106
+ });
120
107
  }
121
108
  }
122
109
  },
@@ -52,7 +52,7 @@ function Popup(_ref2) {
52
52
  (0, _useFocusTrap.useFocusTrap)({
53
53
  targetRef: targetRef
54
54
  });
55
- return /*#__PURE__*/_react.default.createElement(_portal.default, {
55
+ return /*#__PURE__*/_react.default.createElement(_react.Suspense, null, /*#__PURE__*/_react.default.createElement(_portal.default, {
56
56
  zIndex: _constants.layers.modal()
57
57
  }, /*#__PURE__*/_react.default.createElement(_popper.Popper, {
58
58
  referenceElement: referenceElement,
@@ -80,5 +80,5 @@ function Popup(_ref2) {
80
80
  }, /*#__PURE__*/_react.default.createElement(RepositionOnUpdate, {
81
81
  update: update
82
82
  }, children));
83
- }));
83
+ })));
84
84
  }
@@ -1,13 +1,10 @@
1
1
  import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE } from '@atlaskit/editor-common/analytics';
2
- import { getInlineNodeViewProducer } from '@atlaskit/editor-common/react-node-view';
3
2
  import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
4
3
  import { findChildrenByType } from '@atlaskit/editor-prosemirror/utils';
5
4
  import { SLI_EVENT_TYPE, SMART_EVENT_TYPE } from '@atlaskit/mention/resource';
6
5
  import { ComponentNames } from '@atlaskit/mention/types';
7
6
  import { fg } from '@atlaskit/platform-feature-flags';
8
- import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
9
- import { MentionNodeView } from '../nodeviews/mention';
10
- import { MentionNodeView as VanillaMentionNodeView } from '../nodeviews/mentionNodeView';
7
+ import { MentionNodeView } from '../nodeviews/mentionNodeView';
11
8
  import { MENTION_PROVIDER_REJECTED, MENTION_PROVIDER_UNDEFINED } from '../types';
12
9
  import { mentionPluginKey } from './key';
13
10
  import { canMentionBeCreatedInRange } from './utils';
@@ -15,7 +12,7 @@ export const ACTIONS = {
15
12
  SET_PROVIDER: 'SET_PROVIDER'
16
13
  };
17
14
  const PACKAGE_NAME = "@atlaskit/editor-plugin-mentions";
18
- const PACKAGE_VERSION = "4.7.7";
15
+ const PACKAGE_VERSION = "4.7.9";
19
16
  const setProvider = provider => (state, dispatch) => {
20
17
  if (dispatch) {
21
18
  dispatch(state.tr.setMeta(mentionPluginKey, {
@@ -94,21 +91,11 @@ export function createMentionPlugin({
94
91
  props: {
95
92
  nodeViews: {
96
93
  mention: (node, view, getPos, decorations, innerDecorations) => {
97
- return editorExperiment('platform_editor_vanilla_dom', true, {
98
- exposure: true
99
- }) ? new VanillaMentionNodeView(node, {
94
+ return new MentionNodeView(node, {
100
95
  options,
101
96
  api,
102
97
  portalProviderAPI: pmPluginFactoryParams.portalProviderAPI
103
- }) : getInlineNodeViewProducer({
104
- pmPluginFactoryParams,
105
- Component: MentionNodeView,
106
- extraComponentProps: {
107
- providerFactory: pmPluginFactoryParams.providerFactory,
108
- pluginInjectionApi: api,
109
- options
110
- }
111
- })(node, view, getPos, decorations);
98
+ });
112
99
  }
113
100
  }
114
101
  },
@@ -1,4 +1,4 @@
1
- import React, { useRef, useEffect } from 'react';
1
+ import React, { useRef, useEffect, Suspense } from 'react';
2
2
  import { Popper as ReactPopper } from '@atlaskit/popper';
3
3
  import Portal from '@atlaskit/portal';
4
4
  import { layers } from '@atlaskit/theme/constants';
@@ -40,7 +40,7 @@ export function Popup({
40
40
  useFocusTrap({
41
41
  targetRef: targetRef
42
42
  });
43
- return /*#__PURE__*/React.createElement(Portal, {
43
+ return /*#__PURE__*/React.createElement(Suspense, null, /*#__PURE__*/React.createElement(Portal, {
44
44
  zIndex: layers.modal()
45
45
  }, /*#__PURE__*/React.createElement(ReactPopper, {
46
46
  referenceElement: referenceElement,
@@ -67,5 +67,5 @@ export function Popup({
67
67
  style: style
68
68
  }, /*#__PURE__*/React.createElement(RepositionOnUpdate, {
69
69
  update: update
70
- }, children))));
70
+ }, children)))));
71
71
  }
@@ -2,15 +2,12 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
3
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
4
  import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE } from '@atlaskit/editor-common/analytics';
5
- import { getInlineNodeViewProducer } from '@atlaskit/editor-common/react-node-view';
6
5
  import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
7
6
  import { findChildrenByType } from '@atlaskit/editor-prosemirror/utils';
8
7
  import { SLI_EVENT_TYPE, SMART_EVENT_TYPE } from '@atlaskit/mention/resource';
9
8
  import { ComponentNames } from '@atlaskit/mention/types';
10
9
  import { fg } from '@atlaskit/platform-feature-flags';
11
- import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
12
- import { MentionNodeView } from '../nodeviews/mention';
13
- import { MentionNodeView as VanillaMentionNodeView } from '../nodeviews/mentionNodeView';
10
+ import { MentionNodeView } from '../nodeviews/mentionNodeView';
14
11
  import { MENTION_PROVIDER_REJECTED, MENTION_PROVIDER_UNDEFINED } from '../types';
15
12
  import { mentionPluginKey } from './key';
16
13
  import { canMentionBeCreatedInRange } from './utils';
@@ -18,7 +15,7 @@ export var ACTIONS = {
18
15
  SET_PROVIDER: 'SET_PROVIDER'
19
16
  };
20
17
  var PACKAGE_NAME = "@atlaskit/editor-plugin-mentions";
21
- var PACKAGE_VERSION = "4.7.7";
18
+ var PACKAGE_VERSION = "4.7.9";
22
19
  var setProvider = function setProvider(provider) {
23
20
  return function (state, dispatch) {
24
21
  if (dispatch) {
@@ -94,21 +91,11 @@ export function createMentionPlugin(_ref) {
94
91
  props: {
95
92
  nodeViews: {
96
93
  mention: function mention(node, view, getPos, decorations, innerDecorations) {
97
- return editorExperiment('platform_editor_vanilla_dom', true, {
98
- exposure: true
99
- }) ? new VanillaMentionNodeView(node, {
94
+ return new MentionNodeView(node, {
100
95
  options: options,
101
96
  api: api,
102
97
  portalProviderAPI: pmPluginFactoryParams.portalProviderAPI
103
- }) : getInlineNodeViewProducer({
104
- pmPluginFactoryParams: pmPluginFactoryParams,
105
- Component: MentionNodeView,
106
- extraComponentProps: {
107
- providerFactory: pmPluginFactoryParams.providerFactory,
108
- pluginInjectionApi: api,
109
- options: options
110
- }
111
- })(node, view, getPos, decorations);
98
+ });
112
99
  }
113
100
  }
114
101
  },
@@ -1,5 +1,5 @@
1
1
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
- import React, { useRef, useEffect } from 'react';
2
+ import React, { useRef, useEffect, Suspense } from 'react';
3
3
  import { Popper as ReactPopper } from '@atlaskit/popper';
4
4
  import Portal from '@atlaskit/portal';
5
5
  import { layers } from '@atlaskit/theme/constants';
@@ -42,7 +42,7 @@ export function Popup(_ref2) {
42
42
  useFocusTrap({
43
43
  targetRef: targetRef
44
44
  });
45
- return /*#__PURE__*/React.createElement(Portal, {
45
+ return /*#__PURE__*/React.createElement(Suspense, null, /*#__PURE__*/React.createElement(Portal, {
46
46
  zIndex: layers.modal()
47
47
  }, /*#__PURE__*/React.createElement(ReactPopper, {
48
48
  referenceElement: referenceElement,
@@ -70,5 +70,5 @@ export function Popup(_ref2) {
70
70
  }, /*#__PURE__*/React.createElement(RepositionOnUpdate, {
71
71
  update: update
72
72
  }, children));
73
- }));
73
+ })));
74
74
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-plugin-mentions",
3
- "version": "4.7.8",
3
+ "version": "4.7.10",
4
4
  "description": "Mentions plugin for @atlaskit/editor-core",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",
@@ -35,23 +35,23 @@
35
35
  "dependencies": {
36
36
  "@atlaskit/adf-schema": "^47.6.0",
37
37
  "@atlaskit/css": "^0.11.0",
38
- "@atlaskit/editor-common": "^107.0.0",
38
+ "@atlaskit/editor-common": "^107.2.0",
39
39
  "@atlaskit/editor-plugin-analytics": "^2.3.0",
40
40
  "@atlaskit/editor-plugin-base": "^3.0.0",
41
41
  "@atlaskit/editor-plugin-context-identifier": "^2.1.0",
42
42
  "@atlaskit/editor-plugin-selection": "^2.2.0",
43
43
  "@atlaskit/editor-plugin-type-ahead": "^2.7.0",
44
44
  "@atlaskit/editor-prosemirror": "7.0.0",
45
- "@atlaskit/icon": "^27.0.0",
45
+ "@atlaskit/icon": "^27.2.0",
46
46
  "@atlaskit/link": "^3.2.0",
47
47
  "@atlaskit/mention": "^24.2.0",
48
48
  "@atlaskit/platform-feature-flags": "^1.1.0",
49
- "@atlaskit/popper": "^7.0.0",
49
+ "@atlaskit/popper": "^7.1.0",
50
50
  "@atlaskit/portal": "^5.1.0",
51
- "@atlaskit/profilecard": "^23.19.0",
51
+ "@atlaskit/profilecard": "^23.21.0",
52
52
  "@atlaskit/theme": "^18.0.0",
53
- "@atlaskit/tmp-editor-statsig": "^7.2.0",
54
- "@atlaskit/tokens": "^5.3.0",
53
+ "@atlaskit/tmp-editor-statsig": "^8.2.0",
54
+ "@atlaskit/tokens": "^5.4.0",
55
55
  "@babel/runtime": "^7.0.0",
56
56
  "@compiled/react": "^0.18.3",
57
57
  "bind-event-listener": "^3.0.0",
@@ -1,53 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.MentionNodeView = void 0;
8
- var _react = _interopRequireDefault(require("react"));
9
- var _hooks = require("@atlaskit/editor-common/hooks");
10
- var _providerFactory = require("@atlaskit/editor-common/provider-factory");
11
- var _useSharedPluginStateSelector = require("@atlaskit/editor-common/use-shared-plugin-state-selector");
12
- var _Mention = require("../ui/Mention");
13
- var useSharedMentionState = (0, _hooks.sharedPluginStateHookMigratorFactory)(function (api) {
14
- var mentionProvider = (0, _useSharedPluginStateSelector.useSharedPluginStateSelector)(api, 'mention.mentionProvider');
15
- return {
16
- mentionProvider: mentionProvider
17
- };
18
- }, function (api) {
19
- var _useSharedPluginState = (0, _hooks.useSharedPluginState)(api, ['mention']),
20
- mentionState = _useSharedPluginState.mentionState;
21
- return {
22
- mentionProvider: mentionState === null || mentionState === void 0 ? void 0 : mentionState.mentionProvider
23
- };
24
- });
25
- var MentionNodeView = exports.MentionNodeView = function MentionNodeView(props) {
26
- var providerFactory = props.providerFactory,
27
- pluginInjectionApi = props.pluginInjectionApi;
28
- var _props$node$attrs = props.node.attrs,
29
- id = _props$node$attrs.id,
30
- text = _props$node$attrs.text,
31
- accessLevel = _props$node$attrs.accessLevel,
32
- localId = _props$node$attrs.localId;
33
- var _useSharedMentionStat = useSharedMentionState(pluginInjectionApi),
34
- mentionProvider = _useSharedMentionStat.mentionProvider;
35
- var renderAssistiveTextWithProviders = function renderAssistiveTextWithProviders(providers) {
36
- var _props$options;
37
- var mentionProviderPromise = mentionProvider ? Promise.resolve(mentionProvider) : providers.mentionProvider;
38
- var profilecardProvider = (_props$options = props.options) === null || _props$options === void 0 ? void 0 : _props$options.profilecardProvider;
39
- return /*#__PURE__*/_react.default.createElement(_Mention.Mention, {
40
- id: id,
41
- text: text,
42
- accessLevel: accessLevel,
43
- mentionProvider: mentionProviderPromise,
44
- profilecardProvider: profilecardProvider,
45
- localId: localId
46
- });
47
- };
48
- return /*#__PURE__*/_react.default.createElement(_providerFactory.WithProviders, {
49
- providers: ['mentionProvider', 'profilecardProvider'],
50
- providerFactory: providerFactory,
51
- renderNode: renderAssistiveTextWithProviders
52
- });
53
- };
@@ -1,184 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _typeof = require("@babel/runtime/helpers/typeof");
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.Mention = void 0;
9
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
10
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
12
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
- var _react = _interopRequireWildcard(require("react"));
14
- var _browser = require("@atlaskit/editor-common/browser");
15
- var _mention = require("@atlaskit/editor-common/mention");
16
- var _element = require("@atlaskit/mention/element");
17
- var _resource = require("@atlaskit/mention/resource");
18
- var _types = require("@atlaskit/mention/types");
19
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
20
- // Workaround for a firefox issue where dom selection is off sync
21
- // https://product-fabric.atlassian.net/browse/ED-12442
22
- var refreshBrowserSelection = function refreshBrowserSelection() {
23
- var domSelection = window.getSelection();
24
- if (domSelection) {
25
- var domRange = domSelection && domSelection.rangeCount === 1 && domSelection.getRangeAt(0).cloneRange();
26
- if (domRange) {
27
- domSelection.removeAllRanges();
28
- domSelection.addRange(domRange);
29
- }
30
- }
31
- };
32
- var Mention = exports.Mention = function Mention(props) {
33
- var accessLevel = props.accessLevel,
34
- eventHandlers = props.eventHandlers,
35
- id = props.id,
36
- text = props.text,
37
- localId = props.localId,
38
- mentionProvider = props.mentionProvider,
39
- profilecardProviderPromise = props.profilecardProvider;
40
- var _useState = (0, _react.useState)(undefined),
41
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
42
- profilecardProvider = _useState2[0],
43
- setProfilecardProvider = _useState2[1];
44
- var resolvedName = useResolvedName(id, text, mentionProvider);
45
-
46
- // Resolve the profilecard provider
47
- (0, _react.useEffect)(function () {
48
- var isCancelled = false;
49
- var resolveProfilecardProvider = /*#__PURE__*/function () {
50
- var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
51
- var _profilecardProvider;
52
- return _regenerator.default.wrap(function _callee$(_context) {
53
- while (1) switch (_context.prev = _context.next) {
54
- case 0:
55
- _context.prev = 0;
56
- _context.next = 3;
57
- return profilecardProviderPromise;
58
- case 3:
59
- _profilecardProvider = _context.sent;
60
- if (!isCancelled) {
61
- setProfilecardProvider(_profilecardProvider);
62
- }
63
- _context.next = 10;
64
- break;
65
- case 7:
66
- _context.prev = 7;
67
- _context.t0 = _context["catch"](0);
68
- if (!isCancelled) {
69
- setProfilecardProvider(undefined);
70
- }
71
- case 10:
72
- case "end":
73
- return _context.stop();
74
- }
75
- }, _callee, null, [[0, 7]]);
76
- }));
77
- return function resolveProfilecardProvider() {
78
- return _ref.apply(this, arguments);
79
- };
80
- }();
81
- if (profilecardProviderPromise) {
82
- resolveProfilecardProvider();
83
- }
84
- return function () {
85
- isCancelled = true;
86
- };
87
- }, [profilecardProviderPromise]);
88
- (0, _react.useEffect)(function () {
89
- // Workaround an issue where the selection is not updated immediately after adding
90
- // a mention when "sanitizePrivateContent" is enabled in the editor on safari.
91
- // This affects both insertion and paste behaviour it is applied to the component.
92
- // https://product-fabric.atlassian.net/browse/ED-14859
93
- if (_browser.browser.safari) {
94
- setTimeout(refreshBrowserSelection, 0);
95
- }
96
- }, []);
97
- var actionHandlers = {};
98
- ['onClick', 'onMouseEnter', 'onMouseLeave'].forEach(function (handler) {
99
- // Ignored via go/ees005
100
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
101
- actionHandlers[handler] = eventHandlers && eventHandlers[handler] || function () {};
102
- });
103
- if (profilecardProvider) {
104
- return /*#__PURE__*/_react.default.createElement(_mention.MentionWithProfileCard, (0, _extends2.default)({
105
- autoFocus: false,
106
- id: id,
107
- text: resolvedName,
108
- accessLevel: accessLevel,
109
- mentionProvider: mentionProvider,
110
- profilecardProvider: profilecardProvider,
111
- localId: localId
112
- // Ignored via go/ees005
113
- // eslint-disable-next-line react/jsx-props-no-spreading
114
- }, actionHandlers));
115
- } else {
116
- return /*#__PURE__*/_react.default.createElement(_element.ResourcedMention, (0, _extends2.default)({
117
- id: id,
118
- text: resolvedName,
119
- accessLevel: accessLevel,
120
- mentionProvider: mentionProvider,
121
- localId: localId
122
- // Ignored via go/ees005
123
- // eslint-disable-next-line react/jsx-props-no-spreading
124
- }, actionHandlers));
125
- }
126
- };
127
- var useResolvedName = function useResolvedName(id, text, mentionProvider) {
128
- var _useState3 = (0, _react.useState)(text),
129
- _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
130
- resolvedName = _useState4[0],
131
- setResolvedName = _useState4[1];
132
- var processName = function processName(name) {
133
- if (name.status === _resource.MentionNameStatus.OK) {
134
- return "@".concat(name.name || '');
135
- } else {
136
- return "@_|unknown|_";
137
- }
138
- };
139
- (0, _react.useEffect)(function () {
140
- if (mentionProvider) {
141
- mentionProvider.then( /*#__PURE__*/function () {
142
- var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(provider) {
143
- var nameDetail;
144
- return _regenerator.default.wrap(function _callee2$(_context2) {
145
- while (1) switch (_context2.prev = _context2.next) {
146
- case 0:
147
- if (!(!text && (0, _resource.isResolvingMentionProvider)(provider))) {
148
- _context2.next = 13;
149
- break;
150
- }
151
- nameDetail = provider.resolveMentionName(id);
152
- if (!(0, _types.isPromise)(nameDetail)) {
153
- _context2.next = 10;
154
- break;
155
- }
156
- _context2.t0 = processName;
157
- _context2.next = 6;
158
- return nameDetail;
159
- case 6:
160
- _context2.t1 = _context2.sent;
161
- return _context2.abrupt("return", (0, _context2.t0)(_context2.t1));
162
- case 10:
163
- return _context2.abrupt("return", processName(nameDetail));
164
- case 11:
165
- _context2.next = 14;
166
- break;
167
- case 13:
168
- return _context2.abrupt("return", text);
169
- case 14:
170
- case "end":
171
- return _context2.stop();
172
- }
173
- }, _callee2);
174
- }));
175
- return function (_x) {
176
- return _ref2.apply(this, arguments);
177
- };
178
- }()).then(function (resolvedName) {
179
- setResolvedName(resolvedName);
180
- });
181
- }
182
- }, [id, text, mentionProvider]);
183
- return resolvedName;
184
- };
@@ -1,51 +0,0 @@
1
- import React from 'react';
2
- import { useSharedPluginState, sharedPluginStateHookMigratorFactory } from '@atlaskit/editor-common/hooks';
3
- import { WithProviders } from '@atlaskit/editor-common/provider-factory';
4
- import { useSharedPluginStateSelector } from '@atlaskit/editor-common/use-shared-plugin-state-selector';
5
- import { Mention } from '../ui/Mention';
6
- const useSharedMentionState = sharedPluginStateHookMigratorFactory(api => {
7
- const mentionProvider = useSharedPluginStateSelector(api, 'mention.mentionProvider');
8
- return {
9
- mentionProvider
10
- };
11
- }, api => {
12
- const {
13
- mentionState
14
- } = useSharedPluginState(api, ['mention']);
15
- return {
16
- mentionProvider: mentionState === null || mentionState === void 0 ? void 0 : mentionState.mentionProvider
17
- };
18
- });
19
- export const MentionNodeView = props => {
20
- const {
21
- providerFactory,
22
- pluginInjectionApi
23
- } = props;
24
- const {
25
- id,
26
- text,
27
- accessLevel,
28
- localId
29
- } = props.node.attrs;
30
- const {
31
- mentionProvider
32
- } = useSharedMentionState(pluginInjectionApi);
33
- const renderAssistiveTextWithProviders = providers => {
34
- var _props$options;
35
- const mentionProviderPromise = mentionProvider ? Promise.resolve(mentionProvider) : providers.mentionProvider;
36
- const profilecardProvider = (_props$options = props.options) === null || _props$options === void 0 ? void 0 : _props$options.profilecardProvider;
37
- return /*#__PURE__*/React.createElement(Mention, {
38
- id: id,
39
- text: text,
40
- accessLevel: accessLevel,
41
- mentionProvider: mentionProviderPromise,
42
- profilecardProvider: profilecardProvider,
43
- localId: localId
44
- });
45
- };
46
- return /*#__PURE__*/React.createElement(WithProviders, {
47
- providers: ['mentionProvider', 'profilecardProvider'],
48
- providerFactory: providerFactory,
49
- renderNode: renderAssistiveTextWithProviders
50
- });
51
- };
@@ -1,123 +0,0 @@
1
- import _extends from "@babel/runtime/helpers/extends";
2
- import React, { useEffect, useState } from 'react';
3
- import { browser } from '@atlaskit/editor-common/browser';
4
- import { MentionWithProfileCard } from '@atlaskit/editor-common/mention';
5
- import { ResourcedMention } from '@atlaskit/mention/element';
6
- import { isResolvingMentionProvider, MentionNameStatus } from '@atlaskit/mention/resource';
7
- import { isPromise } from '@atlaskit/mention/types';
8
-
9
- // Workaround for a firefox issue where dom selection is off sync
10
- // https://product-fabric.atlassian.net/browse/ED-12442
11
- const refreshBrowserSelection = () => {
12
- const domSelection = window.getSelection();
13
- if (domSelection) {
14
- const domRange = domSelection && domSelection.rangeCount === 1 && domSelection.getRangeAt(0).cloneRange();
15
- if (domRange) {
16
- domSelection.removeAllRanges();
17
- domSelection.addRange(domRange);
18
- }
19
- }
20
- };
21
- export const Mention = props => {
22
- const {
23
- accessLevel,
24
- eventHandlers,
25
- id,
26
- text,
27
- localId,
28
- mentionProvider,
29
- profilecardProvider: profilecardProviderPromise
30
- } = props;
31
- const [profilecardProvider, setProfilecardProvider] = useState(undefined);
32
- const resolvedName = useResolvedName(id, text, mentionProvider);
33
-
34
- // Resolve the profilecard provider
35
- useEffect(() => {
36
- let isCancelled = false;
37
- const resolveProfilecardProvider = async () => {
38
- try {
39
- const profilecardProvider = await profilecardProviderPromise;
40
- if (!isCancelled) {
41
- setProfilecardProvider(profilecardProvider);
42
- }
43
- } catch (error) {
44
- if (!isCancelled) {
45
- setProfilecardProvider(undefined);
46
- }
47
- }
48
- };
49
- if (profilecardProviderPromise) {
50
- resolveProfilecardProvider();
51
- }
52
- return () => {
53
- isCancelled = true;
54
- };
55
- }, [profilecardProviderPromise]);
56
- useEffect(() => {
57
- // Workaround an issue where the selection is not updated immediately after adding
58
- // a mention when "sanitizePrivateContent" is enabled in the editor on safari.
59
- // This affects both insertion and paste behaviour it is applied to the component.
60
- // https://product-fabric.atlassian.net/browse/ED-14859
61
- if (browser.safari) {
62
- setTimeout(refreshBrowserSelection, 0);
63
- }
64
- }, []);
65
- const actionHandlers = {};
66
- ['onClick', 'onMouseEnter', 'onMouseLeave'].forEach(handler => {
67
- // Ignored via go/ees005
68
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
69
- actionHandlers[handler] = eventHandlers && eventHandlers[handler] || (() => {});
70
- });
71
- if (profilecardProvider) {
72
- return /*#__PURE__*/React.createElement(MentionWithProfileCard, _extends({
73
- autoFocus: false,
74
- id: id,
75
- text: resolvedName,
76
- accessLevel: accessLevel,
77
- mentionProvider: mentionProvider,
78
- profilecardProvider: profilecardProvider,
79
- localId: localId
80
- // Ignored via go/ees005
81
- // eslint-disable-next-line react/jsx-props-no-spreading
82
- }, actionHandlers));
83
- } else {
84
- return /*#__PURE__*/React.createElement(ResourcedMention, _extends({
85
- id: id,
86
- text: resolvedName,
87
- accessLevel: accessLevel,
88
- mentionProvider: mentionProvider,
89
- localId: localId
90
- // Ignored via go/ees005
91
- // eslint-disable-next-line react/jsx-props-no-spreading
92
- }, actionHandlers));
93
- }
94
- };
95
- const useResolvedName = (id, text, mentionProvider) => {
96
- const [resolvedName, setResolvedName] = useState(text);
97
- const processName = name => {
98
- if (name.status === MentionNameStatus.OK) {
99
- return `@${name.name || ''}`;
100
- } else {
101
- return `@_|unknown|_`;
102
- }
103
- };
104
- useEffect(() => {
105
- if (mentionProvider) {
106
- mentionProvider.then(async provider => {
107
- if (!text && isResolvingMentionProvider(provider)) {
108
- const nameDetail = provider.resolveMentionName(id);
109
- if (isPromise(nameDetail)) {
110
- return processName(await nameDetail);
111
- } else {
112
- return processName(nameDetail);
113
- }
114
- } else {
115
- return text;
116
- }
117
- }).then(resolvedName => {
118
- setResolvedName(resolvedName);
119
- });
120
- }
121
- }, [id, text, mentionProvider]);
122
- return resolvedName;
123
- };
@@ -1,46 +0,0 @@
1
- import React from 'react';
2
- import { useSharedPluginState, sharedPluginStateHookMigratorFactory } from '@atlaskit/editor-common/hooks';
3
- import { WithProviders } from '@atlaskit/editor-common/provider-factory';
4
- import { useSharedPluginStateSelector } from '@atlaskit/editor-common/use-shared-plugin-state-selector';
5
- import { Mention } from '../ui/Mention';
6
- var useSharedMentionState = sharedPluginStateHookMigratorFactory(function (api) {
7
- var mentionProvider = useSharedPluginStateSelector(api, 'mention.mentionProvider');
8
- return {
9
- mentionProvider: mentionProvider
10
- };
11
- }, function (api) {
12
- var _useSharedPluginState = useSharedPluginState(api, ['mention']),
13
- mentionState = _useSharedPluginState.mentionState;
14
- return {
15
- mentionProvider: mentionState === null || mentionState === void 0 ? void 0 : mentionState.mentionProvider
16
- };
17
- });
18
- export var MentionNodeView = function MentionNodeView(props) {
19
- var providerFactory = props.providerFactory,
20
- pluginInjectionApi = props.pluginInjectionApi;
21
- var _props$node$attrs = props.node.attrs,
22
- id = _props$node$attrs.id,
23
- text = _props$node$attrs.text,
24
- accessLevel = _props$node$attrs.accessLevel,
25
- localId = _props$node$attrs.localId;
26
- var _useSharedMentionStat = useSharedMentionState(pluginInjectionApi),
27
- mentionProvider = _useSharedMentionStat.mentionProvider;
28
- var renderAssistiveTextWithProviders = function renderAssistiveTextWithProviders(providers) {
29
- var _props$options;
30
- var mentionProviderPromise = mentionProvider ? Promise.resolve(mentionProvider) : providers.mentionProvider;
31
- var profilecardProvider = (_props$options = props.options) === null || _props$options === void 0 ? void 0 : _props$options.profilecardProvider;
32
- return /*#__PURE__*/React.createElement(Mention, {
33
- id: id,
34
- text: text,
35
- accessLevel: accessLevel,
36
- mentionProvider: mentionProviderPromise,
37
- profilecardProvider: profilecardProvider,
38
- localId: localId
39
- });
40
- };
41
- return /*#__PURE__*/React.createElement(WithProviders, {
42
- providers: ['mentionProvider', 'profilecardProvider'],
43
- providerFactory: providerFactory,
44
- renderNode: renderAssistiveTextWithProviders
45
- });
46
- };
@@ -1,176 +0,0 @@
1
- import _extends from "@babel/runtime/helpers/extends";
2
- import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
3
- import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
4
- import _regeneratorRuntime from "@babel/runtime/regenerator";
5
- import React, { useEffect, useState } from 'react';
6
- import { browser } from '@atlaskit/editor-common/browser';
7
- import { MentionWithProfileCard } from '@atlaskit/editor-common/mention';
8
- import { ResourcedMention } from '@atlaskit/mention/element';
9
- import { isResolvingMentionProvider, MentionNameStatus } from '@atlaskit/mention/resource';
10
- import { isPromise } from '@atlaskit/mention/types';
11
-
12
- // Workaround for a firefox issue where dom selection is off sync
13
- // https://product-fabric.atlassian.net/browse/ED-12442
14
- var refreshBrowserSelection = function refreshBrowserSelection() {
15
- var domSelection = window.getSelection();
16
- if (domSelection) {
17
- var domRange = domSelection && domSelection.rangeCount === 1 && domSelection.getRangeAt(0).cloneRange();
18
- if (domRange) {
19
- domSelection.removeAllRanges();
20
- domSelection.addRange(domRange);
21
- }
22
- }
23
- };
24
- export var Mention = function Mention(props) {
25
- var accessLevel = props.accessLevel,
26
- eventHandlers = props.eventHandlers,
27
- id = props.id,
28
- text = props.text,
29
- localId = props.localId,
30
- mentionProvider = props.mentionProvider,
31
- profilecardProviderPromise = props.profilecardProvider;
32
- var _useState = useState(undefined),
33
- _useState2 = _slicedToArray(_useState, 2),
34
- profilecardProvider = _useState2[0],
35
- setProfilecardProvider = _useState2[1];
36
- var resolvedName = useResolvedName(id, text, mentionProvider);
37
-
38
- // Resolve the profilecard provider
39
- useEffect(function () {
40
- var isCancelled = false;
41
- var resolveProfilecardProvider = /*#__PURE__*/function () {
42
- var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
43
- var _profilecardProvider;
44
- return _regeneratorRuntime.wrap(function _callee$(_context) {
45
- while (1) switch (_context.prev = _context.next) {
46
- case 0:
47
- _context.prev = 0;
48
- _context.next = 3;
49
- return profilecardProviderPromise;
50
- case 3:
51
- _profilecardProvider = _context.sent;
52
- if (!isCancelled) {
53
- setProfilecardProvider(_profilecardProvider);
54
- }
55
- _context.next = 10;
56
- break;
57
- case 7:
58
- _context.prev = 7;
59
- _context.t0 = _context["catch"](0);
60
- if (!isCancelled) {
61
- setProfilecardProvider(undefined);
62
- }
63
- case 10:
64
- case "end":
65
- return _context.stop();
66
- }
67
- }, _callee, null, [[0, 7]]);
68
- }));
69
- return function resolveProfilecardProvider() {
70
- return _ref.apply(this, arguments);
71
- };
72
- }();
73
- if (profilecardProviderPromise) {
74
- resolveProfilecardProvider();
75
- }
76
- return function () {
77
- isCancelled = true;
78
- };
79
- }, [profilecardProviderPromise]);
80
- useEffect(function () {
81
- // Workaround an issue where the selection is not updated immediately after adding
82
- // a mention when "sanitizePrivateContent" is enabled in the editor on safari.
83
- // This affects both insertion and paste behaviour it is applied to the component.
84
- // https://product-fabric.atlassian.net/browse/ED-14859
85
- if (browser.safari) {
86
- setTimeout(refreshBrowserSelection, 0);
87
- }
88
- }, []);
89
- var actionHandlers = {};
90
- ['onClick', 'onMouseEnter', 'onMouseLeave'].forEach(function (handler) {
91
- // Ignored via go/ees005
92
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
93
- actionHandlers[handler] = eventHandlers && eventHandlers[handler] || function () {};
94
- });
95
- if (profilecardProvider) {
96
- return /*#__PURE__*/React.createElement(MentionWithProfileCard, _extends({
97
- autoFocus: false,
98
- id: id,
99
- text: resolvedName,
100
- accessLevel: accessLevel,
101
- mentionProvider: mentionProvider,
102
- profilecardProvider: profilecardProvider,
103
- localId: localId
104
- // Ignored via go/ees005
105
- // eslint-disable-next-line react/jsx-props-no-spreading
106
- }, actionHandlers));
107
- } else {
108
- return /*#__PURE__*/React.createElement(ResourcedMention, _extends({
109
- id: id,
110
- text: resolvedName,
111
- accessLevel: accessLevel,
112
- mentionProvider: mentionProvider,
113
- localId: localId
114
- // Ignored via go/ees005
115
- // eslint-disable-next-line react/jsx-props-no-spreading
116
- }, actionHandlers));
117
- }
118
- };
119
- var useResolvedName = function useResolvedName(id, text, mentionProvider) {
120
- var _useState3 = useState(text),
121
- _useState4 = _slicedToArray(_useState3, 2),
122
- resolvedName = _useState4[0],
123
- setResolvedName = _useState4[1];
124
- var processName = function processName(name) {
125
- if (name.status === MentionNameStatus.OK) {
126
- return "@".concat(name.name || '');
127
- } else {
128
- return "@_|unknown|_";
129
- }
130
- };
131
- useEffect(function () {
132
- if (mentionProvider) {
133
- mentionProvider.then( /*#__PURE__*/function () {
134
- var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(provider) {
135
- var nameDetail;
136
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
137
- while (1) switch (_context2.prev = _context2.next) {
138
- case 0:
139
- if (!(!text && isResolvingMentionProvider(provider))) {
140
- _context2.next = 13;
141
- break;
142
- }
143
- nameDetail = provider.resolveMentionName(id);
144
- if (!isPromise(nameDetail)) {
145
- _context2.next = 10;
146
- break;
147
- }
148
- _context2.t0 = processName;
149
- _context2.next = 6;
150
- return nameDetail;
151
- case 6:
152
- _context2.t1 = _context2.sent;
153
- return _context2.abrupt("return", (0, _context2.t0)(_context2.t1));
154
- case 10:
155
- return _context2.abrupt("return", processName(nameDetail));
156
- case 11:
157
- _context2.next = 14;
158
- break;
159
- case 13:
160
- return _context2.abrupt("return", text);
161
- case 14:
162
- case "end":
163
- return _context2.stop();
164
- }
165
- }, _callee2);
166
- }));
167
- return function (_x) {
168
- return _ref2.apply(this, arguments);
169
- };
170
- }()).then(function (resolvedName) {
171
- setResolvedName(resolvedName);
172
- });
173
- }
174
- }, [id, text, mentionProvider]);
175
- return resolvedName;
176
- };
@@ -1,12 +0,0 @@
1
- import React from 'react';
2
- import type { ProviderFactory } from '@atlaskit/editor-common/provider-factory';
3
- import type { InlineNodeViewComponentProps } from '@atlaskit/editor-common/react-node-view';
4
- import type { ExtractInjectionAPI } from '@atlaskit/editor-common/types';
5
- import type { MentionsPlugin } from '../mentionsPluginType';
6
- import type { MentionPluginOptions } from '../types';
7
- export type Props = InlineNodeViewComponentProps & {
8
- options: MentionPluginOptions | undefined;
9
- providerFactory: ProviderFactory;
10
- pluginInjectionApi?: ExtractInjectionAPI<MentionsPlugin>;
11
- };
12
- export declare const MentionNodeView: (props: Props) => React.JSX.Element;
@@ -1,14 +0,0 @@
1
- import React from 'react';
2
- import { type ProfilecardProvider } from '@atlaskit/editor-common/provider-factory';
3
- import type { MentionEventHandlers } from '@atlaskit/editor-common/ui';
4
- import { type MentionProvider } from '@atlaskit/mention/resource';
5
- export interface MentionProps {
6
- id: string;
7
- eventHandlers?: MentionEventHandlers;
8
- text: string;
9
- accessLevel?: string;
10
- localId?: string;
11
- mentionProvider?: Promise<MentionProvider>;
12
- profilecardProvider?: Promise<ProfilecardProvider>;
13
- }
14
- export declare const Mention: (props: MentionProps) => React.JSX.Element;
@@ -1,12 +0,0 @@
1
- import React from 'react';
2
- import type { ProviderFactory } from '@atlaskit/editor-common/provider-factory';
3
- import type { InlineNodeViewComponentProps } from '@atlaskit/editor-common/react-node-view';
4
- import type { ExtractInjectionAPI } from '@atlaskit/editor-common/types';
5
- import type { MentionsPlugin } from '../mentionsPluginType';
6
- import type { MentionPluginOptions } from '../types';
7
- export type Props = InlineNodeViewComponentProps & {
8
- options: MentionPluginOptions | undefined;
9
- providerFactory: ProviderFactory;
10
- pluginInjectionApi?: ExtractInjectionAPI<MentionsPlugin>;
11
- };
12
- export declare const MentionNodeView: (props: Props) => React.JSX.Element;
@@ -1,14 +0,0 @@
1
- import React from 'react';
2
- import { type ProfilecardProvider } from '@atlaskit/editor-common/provider-factory';
3
- import type { MentionEventHandlers } from '@atlaskit/editor-common/ui';
4
- import { type MentionProvider } from '@atlaskit/mention/resource';
5
- export interface MentionProps {
6
- id: string;
7
- eventHandlers?: MentionEventHandlers;
8
- text: string;
9
- accessLevel?: string;
10
- localId?: string;
11
- mentionProvider?: Promise<MentionProvider>;
12
- profilecardProvider?: Promise<ProfilecardProvider>;
13
- }
14
- export declare const Mention: (props: MentionProps) => React.JSX.Element;