@atlaskit/renderer 110.5.4 → 110.6.0

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,28 @@
1
1
  # @atlaskit/renderer
2
2
 
3
+ ## 110.6.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#146966](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/146966)
8
+ [`ee4562a10804e`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/ee4562a10804e) -
9
+ cleaned up platform_editor_get_emoji_provider_from_config feature flag
10
+
11
+ ### Patch Changes
12
+
13
+ - Updated dependencies
14
+
15
+ ## 110.5.5
16
+
17
+ ### Patch Changes
18
+
19
+ - [#146981](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/146981)
20
+ [`1bb47674cd3df`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/1bb47674cd3df) -
21
+ [ED-24683] clean up `confluence.frontend.fabric.editor.comments-on-media-media-inline-bug-fix`
22
+ - [#146246](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/146246)
23
+ [`2a4fc73d45dfd`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/2a4fc73d45dfd) -
24
+ Reverting change to add onLoadComplete callback for useLoadAnnotations annotations hook
25
+
3
26
  ## 110.5.4
4
27
 
5
28
  ### Patch Changes
@@ -100,7 +100,7 @@ var ReactSerializer = exports.default = /*#__PURE__*/function () {
100
100
  isMediaLink: true
101
101
  });
102
102
  }
103
- if (_this.isCommentsOnMediaMediaInlineBugFixEnabled && node.type.name === 'mediaInline' && mark.type.name === 'annotation') {
103
+ if (node.type.name === 'mediaInline' && mark.type.name === 'annotation') {
104
104
  return _objectSpread(_objectSpread({}, defaultProps), {}, {
105
105
  isMediaInline: true
106
106
  });
@@ -190,7 +190,6 @@ var ReactSerializer = exports.default = /*#__PURE__*/function () {
190
190
  this.allowWindowedCodeBlock = init.allowWindowedCodeBlock;
191
191
  this.isInsideOfInlineExtension = init.isInsideOfInlineExtension;
192
192
  this.textHighlighter = init.textHighlighter;
193
- this.isCommentsOnMediaMediaInlineBugFixEnabled = init.isCommentsOnMediaMediaInlineBugFixEnabled;
194
193
  this.allowTableAlignment = init.allowTableAlignment;
195
194
  this.allowTableResizing = init.allowTableResizing;
196
195
  }
@@ -1,20 +1,102 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
7
  exports.default = void 0;
8
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
11
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
12
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
13
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
7
15
  var _react = require("@emotion/react");
8
16
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
17
+ var _element = require("@atlaskit/emoji/element");
9
18
  var _react2 = require("react");
10
- var _emoji = require("@atlaskit/editor-common/emoji");
19
+ var _providerFactory = require("@atlaskit/editor-common/provider-factory");
11
20
  var _useInlineAnnotationProps = require("../../ui/annotations/element/useInlineAnnotationProps");
12
- /**
21
+ function _createSuper(t) { var r = _isNativeReflectConstruct(); return function () { var e, o = (0, _getPrototypeOf2.default)(t); if (r) { var s = (0, _getPrototypeOf2.default)(this).constructor; e = Reflect.construct(o, arguments, s); } else e = o.apply(this, arguments); return (0, _possibleConstructorReturn2.default)(this, e); }; }
22
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /**
13
23
  * @jsxRuntime classic
14
24
  * @jsx jsx
15
- */
16
- // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
17
-
25
+ */ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
26
+ // eslint-disable-next-line @repo/internal/react/no-class-components
27
+ var EmojiNode = /*#__PURE__*/function (_PureComponent) {
28
+ (0, _inherits2.default)(EmojiNode, _PureComponent);
29
+ var _super = _createSuper(EmojiNode);
30
+ function EmojiNode(props) {
31
+ var _this;
32
+ (0, _classCallCheck2.default)(this, EmojiNode);
33
+ _this = _super.call(this, props);
34
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderWithProvider", function (providers) {
35
+ var _resourceConfig$optim;
36
+ var _this$props = _this.props,
37
+ allowTextFallback = _this$props.allowTextFallback,
38
+ shortName = _this$props.shortName,
39
+ id = _this$props.id,
40
+ fallback = _this$props.fallback,
41
+ fitToHeight = _this$props.fitToHeight,
42
+ showTooltip = _this$props.showTooltip,
43
+ resourceConfig = _this$props.resourceConfig;
44
+ if (allowTextFallback && !providers.emojiProvider) {
45
+ return (0, _react.jsx)("span", {
46
+ "data-emoji-id": id,
47
+ "data-emoji-short-name": shortName,
48
+ "data-emoji-text": fallback || shortName
49
+ }, fallback || shortName);
50
+ }
51
+ if (!providers.emojiProvider) {
52
+ return null;
53
+ }
54
+ return (0, _react.jsx)(_element.ResourcedEmoji, {
55
+ emojiId: {
56
+ id: id,
57
+ fallback: fallback,
58
+ shortName: shortName
59
+ },
60
+ emojiProvider: providers.emojiProvider,
61
+ showTooltip: showTooltip,
62
+ fitToHeight: fitToHeight,
63
+ optimistic: true,
64
+ optimisticImageURL: resourceConfig === null || resourceConfig === void 0 || (_resourceConfig$optim = resourceConfig.optimisticImageApi) === null || _resourceConfig$optim === void 0 ? void 0 : _resourceConfig$optim.getUrl({
65
+ id: id,
66
+ fallback: fallback,
67
+ shortName: shortName
68
+ }),
69
+ editorEmoji: true
70
+ });
71
+ });
72
+ _this.providerFactory = props.providers || new _providerFactory.ProviderFactory();
73
+ return _this;
74
+ }
75
+ (0, _createClass2.default)(EmojiNode, [{
76
+ key: "componentWillUnmount",
77
+ value: function componentWillUnmount() {
78
+ if (!this.props.providers) {
79
+ // new ProviderFactory is created if no `providers` has been set
80
+ // in this case when component is unmounted it's safe to destroy this providerFactory
81
+ this.providerFactory.destroy();
82
+ }
83
+ }
84
+ }, {
85
+ key: "render",
86
+ value: function render() {
87
+ return (0, _react.jsx)(_providerFactory.WithProviders, {
88
+ providers: ['emojiProvider'],
89
+ providerFactory: this.providerFactory,
90
+ renderNode: this.renderWithProvider
91
+ });
92
+ }
93
+ }]);
94
+ return EmojiNode;
95
+ }(_react2.PureComponent);
96
+ (0, _defineProperty2.default)(EmojiNode, "displayName", 'EmojiNode');
97
+ (0, _defineProperty2.default)(EmojiNode, "defaultProps", {
98
+ showTooltip: true
99
+ });
18
100
  function EmojiItem(props) {
19
101
  var id = props.id,
20
102
  providers = props.providers,
@@ -24,7 +106,7 @@ function EmojiItem(props) {
24
106
  resourceConfig = props.resourceConfig;
25
107
  var inlineAnnotationProps = (0, _useInlineAnnotationProps.useInlineAnnotationProps)(props);
26
108
  if ((0, _platformFeatureFlags.fg)('editor_inline_comments_on_inline_nodes')) {
27
- return (0, _react.jsx)("span", inlineAnnotationProps, (0, _react.jsx)(_emoji.Emoji, {
109
+ return (0, _react.jsx)("span", inlineAnnotationProps, (0, _react.jsx)(EmojiNode, {
28
110
  allowTextFallback: true,
29
111
  id: id,
30
112
  shortName: shortName,
@@ -34,7 +116,7 @@ function EmojiItem(props) {
34
116
  resourceConfig: resourceConfig
35
117
  }));
36
118
  }
37
- return (0, _react.jsx)(_emoji.Emoji, {
119
+ return (0, _react.jsx)(EmojiNode, {
38
120
  allowTextFallback: true,
39
121
  id: id,
40
122
  shortName: shortName,
@@ -63,7 +63,7 @@ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.
63
63
  var NORMAL_SEVERITY_THRESHOLD = exports.NORMAL_SEVERITY_THRESHOLD = 2000;
64
64
  var DEGRADED_SEVERITY_THRESHOLD = exports.DEGRADED_SEVERITY_THRESHOLD = 3000;
65
65
  var packageName = "@atlaskit/renderer";
66
- var packageVersion = "110.5.4";
66
+ var packageVersion = "110.6.0";
67
67
  var defaultNodeComponents = exports.defaultNodeComponents = _nodes.nodeToReact;
68
68
  var Renderer = exports.Renderer = /*#__PURE__*/function (_PureComponent) {
69
69
  (0, _inherits2.default)(Renderer, _PureComponent);
@@ -290,7 +290,6 @@ var Renderer = exports.Renderer = /*#__PURE__*/function (_PureComponent) {
290
290
  allowWindowedCodeBlock: featureFlags === null || featureFlags === void 0 ? void 0 : featureFlags.allowWindowedCodeBlock,
291
291
  isInsideOfInlineExtension: (0, _platformFeatureFlags.fg)('platform.editor.inline_extension.extended_lcqdn') && props.isInsideOfInlineExtension,
292
292
  textHighlighter: props.UNSTABLE_textHighlighter,
293
- isCommentsOnMediaMediaInlineBugFixEnabled: featureFlags === null || featureFlags === void 0 ? void 0 : featureFlags.commentsOnMediaMediaInlineBugFix,
294
293
  allowTableAlignment: props.UNSTABLE_allowTableAlignment,
295
294
  allowTableResizing: props.UNSTABLE_allowTableResizing
296
295
  };
@@ -14,8 +14,7 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
14
14
  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) { (0, _defineProperty2.default)(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; }
15
15
  var useLoadAnnotations = exports.useLoadAnnotations = function useLoadAnnotations(_ref) {
16
16
  var adfDocument = _ref.adfDocument,
17
- isNestedRender = _ref.isNestedRender,
18
- onLoadComplete = _ref.onLoadComplete;
17
+ isNestedRender = _ref.isNestedRender;
19
18
  var actions = (0, _react.useContext)(_RendererActionsContext.RendererContext);
20
19
  var providers = (0, _react.useContext)(_context.ProvidersContext);
21
20
  (0, _react.useEffect)(function () {
@@ -28,9 +27,6 @@ var useLoadAnnotations = exports.useLoadAnnotations = function useLoadAnnotation
28
27
  var annotations = actions.getAnnotationMarks();
29
28
  // we don't want to request integrators for state with an empty list of ids.
30
29
  if (!annotations.length) {
31
- onLoadComplete && onLoadComplete({
32
- numberOfUnresolvedInlineComments: 0
33
- });
34
30
  return;
35
31
  }
36
32
  var ids = annotations.map(function (mark) {
@@ -44,12 +40,7 @@ var useLoadAnnotations = exports.useLoadAnnotations = function useLoadAnnotation
44
40
  return _objectSpread(_objectSpread({}, acc), {}, (0, _defineProperty2.default)({}, value.id, value));
45
41
  }, {});
46
42
  updateSubscriberInlineComment.emit(_types.AnnotationUpdateEvent.SET_ANNOTATION_STATE, payload);
47
- onLoadComplete && onLoadComplete({
48
- numberOfUnresolvedInlineComments: data.filter(function (data) {
49
- return data.state === 'active';
50
- }).length
51
- });
52
43
  };
53
44
  inlineCommentGetState(ids, isNestedRender).then(cb);
54
- }, [actions, providers, adfDocument, isNestedRender, onLoadComplete]);
45
+ }, [actions, providers, adfDocument, isNestedRender]);
55
46
  };
@@ -31,12 +31,10 @@ var _draft = require("./draft");
31
31
  var _element = require("./element");
32
32
  var LoadAnnotations = /*#__PURE__*/_react.default.memo(function (_ref) {
33
33
  var adfDocument = _ref.adfDocument,
34
- isNestedRender = _ref.isNestedRender,
35
- onLoadComplete = _ref.onLoadComplete;
34
+ isNestedRender = _ref.isNestedRender;
36
35
  (0, _useLoadAnnotations.useLoadAnnotations)({
37
36
  adfDocument: adfDocument,
38
- isNestedRender: isNestedRender,
39
- onLoadComplete: onLoadComplete
37
+ isNestedRender: isNestedRender
40
38
  });
41
39
  return null;
42
40
  });
@@ -46,8 +44,7 @@ var AnnotationsWrapper = exports.AnnotationsWrapper = function AnnotationsWrappe
46
44
  annotationProvider = props.annotationProvider,
47
45
  rendererRef = props.rendererRef,
48
46
  adfDocument = props.adfDocument,
49
- isNestedRender = props.isNestedRender,
50
- onLoadComplete = props.onLoadComplete;
47
+ isNestedRender = props.isNestedRender;
51
48
  var updateSubscriber = annotationProvider && annotationProvider.inlineComment && annotationProvider.inlineComment.updateSubscriber;
52
49
  var inlineCommentAnnotationsState = (0, _useEvents.useAnnotationStateByTypeEvent)({
53
50
  type: _adfSchema.AnnotationTypes.INLINE_COMMENT,
@@ -66,8 +63,7 @@ var AnnotationsWrapper = exports.AnnotationsWrapper = function AnnotationsWrappe
66
63
  rendererRef: rendererRef
67
64
  }, /*#__PURE__*/_react.default.createElement(LoadAnnotations, {
68
65
  adfDocument: adfDocument,
69
- isNestedRender: isNestedRender,
70
- onLoadComplete: onLoadComplete
66
+ isNestedRender: isNestedRender
71
67
  }), /*#__PURE__*/_react.default.createElement(_view.AnnotationView, {
72
68
  createAnalyticsEvent: createAnalyticsEvent
73
69
  }), children)))));
@@ -82,7 +82,7 @@ export default class ReactSerializer {
82
82
  isMediaLink: true
83
83
  };
84
84
  }
85
- if (this.isCommentsOnMediaMediaInlineBugFixEnabled && node.type.name === 'mediaInline' && mark.type.name === 'annotation') {
85
+ if (node.type.name === 'mediaInline' && mark.type.name === 'annotation') {
86
86
  return {
87
87
  ...defaultProps,
88
88
  isMediaInline: true
@@ -176,7 +176,6 @@ export default class ReactSerializer {
176
176
  this.allowWindowedCodeBlock = init.allowWindowedCodeBlock;
177
177
  this.isInsideOfInlineExtension = init.isInsideOfInlineExtension;
178
178
  this.textHighlighter = init.textHighlighter;
179
- this.isCommentsOnMediaMediaInlineBugFixEnabled = init.isCommentsOnMediaMediaInlineBugFixEnabled;
180
179
  this.allowTableAlignment = init.allowTableAlignment;
181
180
  this.allowTableResizing = init.allowTableResizing;
182
181
  }
@@ -1,3 +1,4 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
1
2
  /**
2
3
  * @jsxRuntime classic
3
4
  * @jsx jsx
@@ -5,9 +6,74 @@
5
6
  // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
6
7
  import { jsx } from '@emotion/react';
7
8
  import { fg } from '@atlaskit/platform-feature-flags';
8
- import { memo } from 'react';
9
- import { Emoji } from '@atlaskit/editor-common/emoji';
9
+ import { ResourcedEmoji } from '@atlaskit/emoji/element';
10
+ import { PureComponent, memo } from 'react';
11
+ import { ProviderFactory, WithProviders } from '@atlaskit/editor-common/provider-factory';
10
12
  import { useInlineAnnotationProps } from '../../ui/annotations/element/useInlineAnnotationProps';
13
+ // eslint-disable-next-line @repo/internal/react/no-class-components
14
+ class EmojiNode extends PureComponent {
15
+ constructor(props) {
16
+ super(props);
17
+ _defineProperty(this, "renderWithProvider", providers => {
18
+ var _resourceConfig$optim;
19
+ const {
20
+ allowTextFallback,
21
+ shortName,
22
+ id,
23
+ fallback,
24
+ fitToHeight,
25
+ showTooltip,
26
+ resourceConfig
27
+ } = this.props;
28
+ if (allowTextFallback && !providers.emojiProvider) {
29
+ return jsx("span", {
30
+ "data-emoji-id": id,
31
+ "data-emoji-short-name": shortName,
32
+ "data-emoji-text": fallback || shortName
33
+ }, fallback || shortName);
34
+ }
35
+ if (!providers.emojiProvider) {
36
+ return null;
37
+ }
38
+ return jsx(ResourcedEmoji, {
39
+ emojiId: {
40
+ id,
41
+ fallback,
42
+ shortName
43
+ },
44
+ emojiProvider: providers.emojiProvider,
45
+ showTooltip: showTooltip,
46
+ fitToHeight: fitToHeight,
47
+ optimistic: true,
48
+ optimisticImageURL: resourceConfig === null || resourceConfig === void 0 ? void 0 : (_resourceConfig$optim = resourceConfig.optimisticImageApi) === null || _resourceConfig$optim === void 0 ? void 0 : _resourceConfig$optim.getUrl({
49
+ id,
50
+ fallback,
51
+ shortName
52
+ }),
53
+ editorEmoji: true
54
+ });
55
+ });
56
+ this.providerFactory = props.providers || new ProviderFactory();
57
+ }
58
+ componentWillUnmount() {
59
+ if (!this.props.providers) {
60
+ // new ProviderFactory is created if no `providers` has been set
61
+ // in this case when component is unmounted it's safe to destroy this providerFactory
62
+ this.providerFactory.destroy();
63
+ }
64
+ }
65
+ render() {
66
+ return jsx(WithProviders, {
67
+ providers: ['emojiProvider'],
68
+ providerFactory: this.providerFactory,
69
+ renderNode: this.renderWithProvider
70
+ });
71
+ }
72
+ }
73
+ _defineProperty(EmojiNode, "displayName", 'EmojiNode');
74
+ _defineProperty(EmojiNode, "defaultProps", {
75
+ showTooltip: true
76
+ });
11
77
  function EmojiItem(props) {
12
78
  const {
13
79
  id,
@@ -19,7 +85,7 @@ function EmojiItem(props) {
19
85
  } = props;
20
86
  const inlineAnnotationProps = useInlineAnnotationProps(props);
21
87
  if (fg('editor_inline_comments_on_inline_nodes')) {
22
- return jsx("span", inlineAnnotationProps, jsx(Emoji, {
88
+ return jsx("span", inlineAnnotationProps, jsx(EmojiNode, {
23
89
  allowTextFallback: true,
24
90
  id: id,
25
91
  shortName: shortName,
@@ -29,7 +95,7 @@ function EmojiItem(props) {
29
95
  resourceConfig: resourceConfig
30
96
  }));
31
97
  }
32
- return jsx(Emoji, {
98
+ return jsx(EmojiNode, {
33
99
  allowTextFallback: true,
34
100
  id: id,
35
101
  shortName: shortName,
@@ -45,7 +45,7 @@ import { nodeToReact } from '../../react/nodes';
45
45
  export const NORMAL_SEVERITY_THRESHOLD = 2000;
46
46
  export const DEGRADED_SEVERITY_THRESHOLD = 3000;
47
47
  const packageName = "@atlaskit/renderer";
48
- const packageVersion = "110.5.4";
48
+ const packageVersion = "110.6.0";
49
49
  export const defaultNodeComponents = nodeToReact;
50
50
  export class Renderer extends PureComponent {
51
51
  constructor(props) {
@@ -270,7 +270,6 @@ export class Renderer extends PureComponent {
270
270
  allowWindowedCodeBlock: featureFlags === null || featureFlags === void 0 ? void 0 : featureFlags.allowWindowedCodeBlock,
271
271
  isInsideOfInlineExtension: fg('platform.editor.inline_extension.extended_lcqdn') && props.isInsideOfInlineExtension,
272
272
  textHighlighter: props.UNSTABLE_textHighlighter,
273
- isCommentsOnMediaMediaInlineBugFixEnabled: featureFlags === null || featureFlags === void 0 ? void 0 : featureFlags.commentsOnMediaMediaInlineBugFix,
274
273
  allowTableAlignment: props.UNSTABLE_allowTableAlignment,
275
274
  allowTableResizing: props.UNSTABLE_allowTableResizing
276
275
  };
@@ -4,8 +4,7 @@ import { ProvidersContext } from '../context';
4
4
  import { RendererContext as ActionsContext } from '../../RendererActionsContext';
5
5
  export const useLoadAnnotations = ({
6
6
  adfDocument,
7
- isNestedRender,
8
- onLoadComplete
7
+ isNestedRender
9
8
  }) => {
10
9
  const actions = useContext(ActionsContext);
11
10
  const providers = useContext(ProvidersContext);
@@ -22,9 +21,6 @@ export const useLoadAnnotations = ({
22
21
  const annotations = actions.getAnnotationMarks();
23
22
  // we don't want to request integrators for state with an empty list of ids.
24
23
  if (!annotations.length) {
25
- onLoadComplete && onLoadComplete({
26
- numberOfUnresolvedInlineComments: 0
27
- });
28
24
  return;
29
25
  }
30
26
  const ids = annotations.map(mark => mark.attrs.id);
@@ -37,10 +33,7 @@ export const useLoadAnnotations = ({
37
33
  [value.id]: value
38
34
  }), {});
39
35
  updateSubscriberInlineComment.emit(AnnotationUpdateEvent.SET_ANNOTATION_STATE, payload);
40
- onLoadComplete && onLoadComplete({
41
- numberOfUnresolvedInlineComments: data.filter(data => data.state === 'active').length
42
- });
43
36
  };
44
37
  inlineCommentGetState(ids, isNestedRender).then(cb);
45
- }, [actions, providers, adfDocument, isNestedRender, onLoadComplete]);
38
+ }, [actions, providers, adfDocument, isNestedRender]);
46
39
  };
@@ -10,13 +10,11 @@ import { AnnotationRangeProvider } from './contexts/AnnotationRangeContext';
10
10
  import { AnnotationHoverContext } from './contexts/AnnotationHoverContext';
11
11
  const LoadAnnotations = /*#__PURE__*/React.memo(({
12
12
  adfDocument,
13
- isNestedRender,
14
- onLoadComplete
13
+ isNestedRender
15
14
  }) => {
16
15
  useLoadAnnotations({
17
16
  adfDocument,
18
- isNestedRender,
19
- onLoadComplete
17
+ isNestedRender
20
18
  });
21
19
  return null;
22
20
  });
@@ -27,8 +25,7 @@ export const AnnotationsWrapper = props => {
27
25
  annotationProvider,
28
26
  rendererRef,
29
27
  adfDocument,
30
- isNestedRender,
31
- onLoadComplete
28
+ isNestedRender
32
29
  } = props;
33
30
  const updateSubscriber = annotationProvider && annotationProvider.inlineComment && annotationProvider.inlineComment.updateSubscriber;
34
31
  const inlineCommentAnnotationsState = useAnnotationStateByTypeEvent({
@@ -49,8 +46,7 @@ export const AnnotationsWrapper = props => {
49
46
  rendererRef: rendererRef
50
47
  }, /*#__PURE__*/React.createElement(LoadAnnotations, {
51
48
  adfDocument: adfDocument,
52
- isNestedRender: isNestedRender,
53
- onLoadComplete: onLoadComplete
49
+ isNestedRender: isNestedRender
54
50
  }), /*#__PURE__*/React.createElement(AnnotationView, {
55
51
  createAnalyticsEvent: createAnalyticsEvent
56
52
  }), children)))));
@@ -93,7 +93,7 @@ var ReactSerializer = /*#__PURE__*/function () {
93
93
  isMediaLink: true
94
94
  });
95
95
  }
96
- if (_this.isCommentsOnMediaMediaInlineBugFixEnabled && node.type.name === 'mediaInline' && mark.type.name === 'annotation') {
96
+ if (node.type.name === 'mediaInline' && mark.type.name === 'annotation') {
97
97
  return _objectSpread(_objectSpread({}, defaultProps), {}, {
98
98
  isMediaInline: true
99
99
  });
@@ -183,7 +183,6 @@ var ReactSerializer = /*#__PURE__*/function () {
183
183
  this.allowWindowedCodeBlock = init.allowWindowedCodeBlock;
184
184
  this.isInsideOfInlineExtension = init.isInsideOfInlineExtension;
185
185
  this.textHighlighter = init.textHighlighter;
186
- this.isCommentsOnMediaMediaInlineBugFixEnabled = init.isCommentsOnMediaMediaInlineBugFixEnabled;
187
186
  this.allowTableAlignment = init.allowTableAlignment;
188
187
  this.allowTableResizing = init.allowTableResizing;
189
188
  }
@@ -1,3 +1,12 @@
1
+ import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
+ import _createClass from "@babel/runtime/helpers/createClass";
3
+ import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
4
+ import _inherits from "@babel/runtime/helpers/inherits";
5
+ import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
6
+ import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
7
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
8
+ function _createSuper(t) { var r = _isNativeReflectConstruct(); return function () { var e, o = _getPrototypeOf(t); if (r) { var s = _getPrototypeOf(this).constructor; e = Reflect.construct(o, arguments, s); } else e = o.apply(this, arguments); return _possibleConstructorReturn(this, e); }; }
9
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
1
10
  /**
2
11
  * @jsxRuntime classic
3
12
  * @jsx jsx
@@ -5,9 +14,84 @@
5
14
  // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
6
15
  import { jsx } from '@emotion/react';
7
16
  import { fg } from '@atlaskit/platform-feature-flags';
8
- import { memo } from 'react';
9
- import { Emoji } from '@atlaskit/editor-common/emoji';
17
+ import { ResourcedEmoji } from '@atlaskit/emoji/element';
18
+ import { PureComponent, memo } from 'react';
19
+ import { ProviderFactory, WithProviders } from '@atlaskit/editor-common/provider-factory';
10
20
  import { useInlineAnnotationProps } from '../../ui/annotations/element/useInlineAnnotationProps';
21
+ // eslint-disable-next-line @repo/internal/react/no-class-components
22
+ var EmojiNode = /*#__PURE__*/function (_PureComponent) {
23
+ _inherits(EmojiNode, _PureComponent);
24
+ var _super = _createSuper(EmojiNode);
25
+ function EmojiNode(props) {
26
+ var _this;
27
+ _classCallCheck(this, EmojiNode);
28
+ _this = _super.call(this, props);
29
+ _defineProperty(_assertThisInitialized(_this), "renderWithProvider", function (providers) {
30
+ var _resourceConfig$optim;
31
+ var _this$props = _this.props,
32
+ allowTextFallback = _this$props.allowTextFallback,
33
+ shortName = _this$props.shortName,
34
+ id = _this$props.id,
35
+ fallback = _this$props.fallback,
36
+ fitToHeight = _this$props.fitToHeight,
37
+ showTooltip = _this$props.showTooltip,
38
+ resourceConfig = _this$props.resourceConfig;
39
+ if (allowTextFallback && !providers.emojiProvider) {
40
+ return jsx("span", {
41
+ "data-emoji-id": id,
42
+ "data-emoji-short-name": shortName,
43
+ "data-emoji-text": fallback || shortName
44
+ }, fallback || shortName);
45
+ }
46
+ if (!providers.emojiProvider) {
47
+ return null;
48
+ }
49
+ return jsx(ResourcedEmoji, {
50
+ emojiId: {
51
+ id: id,
52
+ fallback: fallback,
53
+ shortName: shortName
54
+ },
55
+ emojiProvider: providers.emojiProvider,
56
+ showTooltip: showTooltip,
57
+ fitToHeight: fitToHeight,
58
+ optimistic: true,
59
+ optimisticImageURL: resourceConfig === null || resourceConfig === void 0 || (_resourceConfig$optim = resourceConfig.optimisticImageApi) === null || _resourceConfig$optim === void 0 ? void 0 : _resourceConfig$optim.getUrl({
60
+ id: id,
61
+ fallback: fallback,
62
+ shortName: shortName
63
+ }),
64
+ editorEmoji: true
65
+ });
66
+ });
67
+ _this.providerFactory = props.providers || new ProviderFactory();
68
+ return _this;
69
+ }
70
+ _createClass(EmojiNode, [{
71
+ key: "componentWillUnmount",
72
+ value: function componentWillUnmount() {
73
+ if (!this.props.providers) {
74
+ // new ProviderFactory is created if no `providers` has been set
75
+ // in this case when component is unmounted it's safe to destroy this providerFactory
76
+ this.providerFactory.destroy();
77
+ }
78
+ }
79
+ }, {
80
+ key: "render",
81
+ value: function render() {
82
+ return jsx(WithProviders, {
83
+ providers: ['emojiProvider'],
84
+ providerFactory: this.providerFactory,
85
+ renderNode: this.renderWithProvider
86
+ });
87
+ }
88
+ }]);
89
+ return EmojiNode;
90
+ }(PureComponent);
91
+ _defineProperty(EmojiNode, "displayName", 'EmojiNode');
92
+ _defineProperty(EmojiNode, "defaultProps", {
93
+ showTooltip: true
94
+ });
11
95
  function EmojiItem(props) {
12
96
  var id = props.id,
13
97
  providers = props.providers,
@@ -17,7 +101,7 @@ function EmojiItem(props) {
17
101
  resourceConfig = props.resourceConfig;
18
102
  var inlineAnnotationProps = useInlineAnnotationProps(props);
19
103
  if (fg('editor_inline_comments_on_inline_nodes')) {
20
- return jsx("span", inlineAnnotationProps, jsx(Emoji, {
104
+ return jsx("span", inlineAnnotationProps, jsx(EmojiNode, {
21
105
  allowTextFallback: true,
22
106
  id: id,
23
107
  shortName: shortName,
@@ -27,7 +111,7 @@ function EmojiItem(props) {
27
111
  resourceConfig: resourceConfig
28
112
  }));
29
113
  }
30
- return jsx(Emoji, {
114
+ return jsx(EmojiNode, {
31
115
  allowTextFallback: true,
32
116
  id: id,
33
117
  shortName: shortName,
@@ -55,7 +55,7 @@ import { nodeToReact } from '../../react/nodes';
55
55
  export var NORMAL_SEVERITY_THRESHOLD = 2000;
56
56
  export var DEGRADED_SEVERITY_THRESHOLD = 3000;
57
57
  var packageName = "@atlaskit/renderer";
58
- var packageVersion = "110.5.4";
58
+ var packageVersion = "110.6.0";
59
59
  export var defaultNodeComponents = nodeToReact;
60
60
  export var Renderer = /*#__PURE__*/function (_PureComponent) {
61
61
  _inherits(Renderer, _PureComponent);
@@ -282,7 +282,6 @@ export var Renderer = /*#__PURE__*/function (_PureComponent) {
282
282
  allowWindowedCodeBlock: featureFlags === null || featureFlags === void 0 ? void 0 : featureFlags.allowWindowedCodeBlock,
283
283
  isInsideOfInlineExtension: fg('platform.editor.inline_extension.extended_lcqdn') && props.isInsideOfInlineExtension,
284
284
  textHighlighter: props.UNSTABLE_textHighlighter,
285
- isCommentsOnMediaMediaInlineBugFixEnabled: featureFlags === null || featureFlags === void 0 ? void 0 : featureFlags.commentsOnMediaMediaInlineBugFix,
286
285
  allowTableAlignment: props.UNSTABLE_allowTableAlignment,
287
286
  allowTableResizing: props.UNSTABLE_allowTableResizing
288
287
  };
@@ -7,8 +7,7 @@ import { ProvidersContext } from '../context';
7
7
  import { RendererContext as ActionsContext } from '../../RendererActionsContext';
8
8
  export var useLoadAnnotations = function useLoadAnnotations(_ref) {
9
9
  var adfDocument = _ref.adfDocument,
10
- isNestedRender = _ref.isNestedRender,
11
- onLoadComplete = _ref.onLoadComplete;
10
+ isNestedRender = _ref.isNestedRender;
12
11
  var actions = useContext(ActionsContext);
13
12
  var providers = useContext(ProvidersContext);
14
13
  useEffect(function () {
@@ -21,9 +20,6 @@ export var useLoadAnnotations = function useLoadAnnotations(_ref) {
21
20
  var annotations = actions.getAnnotationMarks();
22
21
  // we don't want to request integrators for state with an empty list of ids.
23
22
  if (!annotations.length) {
24
- onLoadComplete && onLoadComplete({
25
- numberOfUnresolvedInlineComments: 0
26
- });
27
23
  return;
28
24
  }
29
25
  var ids = annotations.map(function (mark) {
@@ -37,12 +33,7 @@ export var useLoadAnnotations = function useLoadAnnotations(_ref) {
37
33
  return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, value.id, value));
38
34
  }, {});
39
35
  updateSubscriberInlineComment.emit(AnnotationUpdateEvent.SET_ANNOTATION_STATE, payload);
40
- onLoadComplete && onLoadComplete({
41
- numberOfUnresolvedInlineComments: data.filter(function (data) {
42
- return data.state === 'active';
43
- }).length
44
- });
45
36
  };
46
37
  inlineCommentGetState(ids, isNestedRender).then(cb);
47
- }, [actions, providers, adfDocument, isNestedRender, onLoadComplete]);
38
+ }, [actions, providers, adfDocument, isNestedRender]);
48
39
  };
@@ -10,12 +10,10 @@ import { AnnotationRangeProvider } from './contexts/AnnotationRangeContext';
10
10
  import { AnnotationHoverContext } from './contexts/AnnotationHoverContext';
11
11
  var LoadAnnotations = /*#__PURE__*/React.memo(function (_ref) {
12
12
  var adfDocument = _ref.adfDocument,
13
- isNestedRender = _ref.isNestedRender,
14
- onLoadComplete = _ref.onLoadComplete;
13
+ isNestedRender = _ref.isNestedRender;
15
14
  useLoadAnnotations({
16
15
  adfDocument: adfDocument,
17
- isNestedRender: isNestedRender,
18
- onLoadComplete: onLoadComplete
16
+ isNestedRender: isNestedRender
19
17
  });
20
18
  return null;
21
19
  });
@@ -25,8 +23,7 @@ export var AnnotationsWrapper = function AnnotationsWrapper(props) {
25
23
  annotationProvider = props.annotationProvider,
26
24
  rendererRef = props.rendererRef,
27
25
  adfDocument = props.adfDocument,
28
- isNestedRender = props.isNestedRender,
29
- onLoadComplete = props.onLoadComplete;
26
+ isNestedRender = props.isNestedRender;
30
27
  var updateSubscriber = annotationProvider && annotationProvider.inlineComment && annotationProvider.inlineComment.updateSubscriber;
31
28
  var inlineCommentAnnotationsState = useAnnotationStateByTypeEvent({
32
29
  type: AnnotationTypes.INLINE_COMMENT,
@@ -45,8 +42,7 @@ export var AnnotationsWrapper = function AnnotationsWrapper(props) {
45
42
  rendererRef: rendererRef
46
43
  }, /*#__PURE__*/React.createElement(LoadAnnotations, {
47
44
  adfDocument: adfDocument,
48
- isNestedRender: isNestedRender,
49
- onLoadComplete: onLoadComplete
45
+ isNestedRender: isNestedRender
50
46
  }), /*#__PURE__*/React.createElement(AnnotationView, {
51
47
  createAnalyticsEvent: createAnalyticsEvent
52
48
  }), children)))));
@@ -41,7 +41,6 @@ export interface ReactSerializerInit {
41
41
  allowWindowedCodeBlock?: boolean;
42
42
  isInsideOfInlineExtension?: boolean;
43
43
  textHighlighter?: TextHighlighter;
44
- isCommentsOnMediaMediaInlineBugFixEnabled?: boolean;
45
44
  allowTableAlignment?: boolean;
46
45
  allowTableResizing?: boolean;
47
46
  }
@@ -90,7 +89,6 @@ export default class ReactSerializer implements Serializer<JSX.Element> {
90
89
  private nodeComponents?;
91
90
  private allowWindowedCodeBlock?;
92
91
  private isInsideOfInlineExtension?;
93
- private isCommentsOnMediaMediaInlineBugFixEnabled?;
94
92
  private textHighlighter?;
95
93
  private allowTableAlignment?;
96
94
  private allowTableResizing?;
@@ -4,14 +4,17 @@
4
4
  * @jsx jsx
5
5
  */
6
6
  import { jsx } from '@emotion/react';
7
- import { type EmojiAttributes } from '@atlaskit/adf-schema';
8
7
  import { type EmojiResourceConfig } from '@atlaskit/emoji/resource';
9
- import { type ProviderFactory } from '@atlaskit/editor-common/provider-factory';
8
+ import { ProviderFactory } from '@atlaskit/editor-common/provider-factory';
9
+ import type { EmojiId } from '@atlaskit/emoji/types';
10
10
  import { type MarkDataAttributes } from '../../ui/annotations/element/useInlineAnnotationProps';
11
- export interface EmojiProps extends EmojiAttributes, MarkDataAttributes {
11
+ import { type EmojiAttributes } from '@atlaskit/adf-schema';
12
+ export interface EmojiProps extends EmojiId, EmojiAttributes, MarkDataAttributes {
13
+ allowTextFallback?: boolean;
12
14
  providers?: ProviderFactory;
13
- resourceConfig?: EmojiResourceConfig;
14
15
  fitToHeight?: number;
16
+ showTooltip?: boolean;
17
+ resourceConfig?: EmojiResourceConfig;
15
18
  }
16
19
  declare function EmojiItem(props: EmojiProps): jsx.JSX.Element;
17
20
  declare namespace EmojiItem {
@@ -2,9 +2,6 @@ import type { JSONDocNode } from '@atlaskit/editor-json-transformer';
2
2
  type Props = {
3
3
  adfDocument: JSONDocNode;
4
4
  isNestedRender: boolean;
5
- onLoadComplete?: ({ numberOfUnresolvedInlineComments, }: {
6
- numberOfUnresolvedInlineComments: number;
7
- }) => void;
8
5
  };
9
- export declare const useLoadAnnotations: ({ adfDocument, isNestedRender, onLoadComplete }: Props) => void;
6
+ export declare const useLoadAnnotations: ({ adfDocument, isNestedRender }: Props) => void;
10
7
  export {};
@@ -16,9 +16,6 @@ export type AnnotationsWrapperProps = React.PropsWithChildren<{
16
16
  annotationProvider: AnnotationProviders | null | undefined;
17
17
  rendererRef: React.RefObject<HTMLDivElement>;
18
18
  isNestedRender: boolean;
19
- onLoadComplete?: ({ numberOfUnresolvedInlineComments, }: {
20
- numberOfUnresolvedInlineComments: number;
21
- }) => void;
22
19
  }>;
23
20
  export type TextPosition = {
24
21
  start: number;
@@ -41,7 +41,6 @@ export interface ReactSerializerInit {
41
41
  allowWindowedCodeBlock?: boolean;
42
42
  isInsideOfInlineExtension?: boolean;
43
43
  textHighlighter?: TextHighlighter;
44
- isCommentsOnMediaMediaInlineBugFixEnabled?: boolean;
45
44
  allowTableAlignment?: boolean;
46
45
  allowTableResizing?: boolean;
47
46
  }
@@ -90,7 +89,6 @@ export default class ReactSerializer implements Serializer<JSX.Element> {
90
89
  private nodeComponents?;
91
90
  private allowWindowedCodeBlock?;
92
91
  private isInsideOfInlineExtension?;
93
- private isCommentsOnMediaMediaInlineBugFixEnabled?;
94
92
  private textHighlighter?;
95
93
  private allowTableAlignment?;
96
94
  private allowTableResizing?;
@@ -4,14 +4,17 @@
4
4
  * @jsx jsx
5
5
  */
6
6
  import { jsx } from '@emotion/react';
7
- import { type EmojiAttributes } from '@atlaskit/adf-schema';
8
7
  import { type EmojiResourceConfig } from '@atlaskit/emoji/resource';
9
- import { type ProviderFactory } from '@atlaskit/editor-common/provider-factory';
8
+ import { ProviderFactory } from '@atlaskit/editor-common/provider-factory';
9
+ import type { EmojiId } from '@atlaskit/emoji/types';
10
10
  import { type MarkDataAttributes } from '../../ui/annotations/element/useInlineAnnotationProps';
11
- export interface EmojiProps extends EmojiAttributes, MarkDataAttributes {
11
+ import { type EmojiAttributes } from '@atlaskit/adf-schema';
12
+ export interface EmojiProps extends EmojiId, EmojiAttributes, MarkDataAttributes {
13
+ allowTextFallback?: boolean;
12
14
  providers?: ProviderFactory;
13
- resourceConfig?: EmojiResourceConfig;
14
15
  fitToHeight?: number;
16
+ showTooltip?: boolean;
17
+ resourceConfig?: EmojiResourceConfig;
15
18
  }
16
19
  declare function EmojiItem(props: EmojiProps): jsx.JSX.Element;
17
20
  declare namespace EmojiItem {
@@ -2,9 +2,6 @@ import type { JSONDocNode } from '@atlaskit/editor-json-transformer';
2
2
  type Props = {
3
3
  adfDocument: JSONDocNode;
4
4
  isNestedRender: boolean;
5
- onLoadComplete?: ({ numberOfUnresolvedInlineComments, }: {
6
- numberOfUnresolvedInlineComments: number;
7
- }) => void;
8
5
  };
9
- export declare const useLoadAnnotations: ({ adfDocument, isNestedRender, onLoadComplete }: Props) => void;
6
+ export declare const useLoadAnnotations: ({ adfDocument, isNestedRender }: Props) => void;
10
7
  export {};
@@ -16,9 +16,6 @@ export type AnnotationsWrapperProps = React.PropsWithChildren<{
16
16
  annotationProvider: AnnotationProviders | null | undefined;
17
17
  rendererRef: React.RefObject<HTMLDivElement>;
18
18
  isNestedRender: boolean;
19
- onLoadComplete?: ({ numberOfUnresolvedInlineComments, }: {
20
- numberOfUnresolvedInlineComments: number;
21
- }) => void;
22
19
  }>;
23
20
  export type TextPosition = {
24
21
  start: number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/renderer",
3
- "version": "110.5.4",
3
+ "version": "110.6.0",
4
4
  "description": "Renderer component",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -46,7 +46,7 @@
46
46
  "@atlaskit/media-ui": "^25.15.0",
47
47
  "@atlaskit/media-viewer": "^48.10.0",
48
48
  "@atlaskit/platform-feature-flags": "^0.3.0",
49
- "@atlaskit/smart-card": "^28.3.0",
49
+ "@atlaskit/smart-card": "^28.4.0",
50
50
  "@atlaskit/status": "^1.5.0",
51
51
  "@atlaskit/task-decision": "^17.11.0",
52
52
  "@atlaskit/theme": "^13.0.0",