@atlaskit/renderer 109.41.0 → 109.42.1

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.
@@ -1,4 +1,3 @@
1
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
1
  /** @jsx jsx */
3
2
  // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
4
3
  import { css, jsx } from '@emotion/react';
@@ -7,7 +6,7 @@ import memoizeOne from 'memoize-one';
7
6
  import { getNodeRenderer } from '@atlaskit/editor-common/extensions';
8
7
  import { WithProviders } from '@atlaskit/editor-common/provider-factory';
9
8
  import { getExtensionRenderer } from '@atlaskit/editor-common/utils';
10
- import { getBooleanFF } from '@atlaskit/platform-feature-flags';
9
+ import { fg } from '@atlaskit/platform-feature-flags';
11
10
  const inlineExtensionStyle = css({
12
11
  display: 'inline-block',
13
12
  maxWidth: '100%',
@@ -19,113 +18,99 @@ const inlineExtensionStyle = css({
19
18
  maxWidth: '100%'
20
19
  }
21
20
  });
22
- export default class ExtensionRenderer extends React.Component {
23
- constructor(...args) {
24
- super(...args);
25
- _defineProperty(this, "state", {
26
- extensionProvider: null
21
+ export default function ExtensionRenderer(props) {
22
+ const {
23
+ extensionHandlers,
24
+ rendererContext,
25
+ extensionType,
26
+ extensionKey,
27
+ parameters,
28
+ content,
29
+ text,
30
+ type,
31
+ localId,
32
+ marks,
33
+ actions,
34
+ children
35
+ } = props;
36
+ const isMounted = React.useRef(true);
37
+ const localGetNodeRenderer = React.useMemo(() => memoizeOne(getNodeRenderer), []);
38
+ const [extensionProvider, setExtensionProvider] = React.useState(null);
39
+ const handleProvider = React.useCallback((name, providerPromise) => {
40
+ providerPromise && providerPromise.then(provider => {
41
+ if (isMounted.current) {
42
+ setExtensionProvider(provider);
43
+ }
27
44
  });
28
- _defineProperty(this, "mounted", false);
29
- _defineProperty(this, "handleProvider", (name, providerPromise) => {
30
- providerPromise && providerPromise.then(provider => {
31
- if (this.mounted) {
32
- this.setState({
33
- [name]: provider
45
+ }, []);
46
+ const renderExtensionNode = React.useCallback(extensionProvider => {
47
+ var _marks$find, _marks$find$attrs;
48
+ const fragmentLocalId = marks === null || marks === void 0 ? void 0 : (_marks$find = marks.find(m => m.type.name === 'fragment')) === null || _marks$find === void 0 ? void 0 : (_marks$find$attrs = _marks$find.attrs) === null || _marks$find$attrs === void 0 ? void 0 : _marks$find$attrs.localId;
49
+ const node = {
50
+ type,
51
+ extensionKey,
52
+ extensionType,
53
+ parameters,
54
+ content: content || text,
55
+ localId,
56
+ fragmentLocalId
57
+ };
58
+ let result = null;
59
+ try {
60
+ if (extensionHandlers && extensionHandlers[extensionType]) {
61
+ const render = getExtensionRenderer(extensionHandlers[extensionType]);
62
+ result = render(node, rendererContext.adDoc);
63
+ }
64
+ if (!result && extensionProvider) {
65
+ const NodeRenderer = localGetNodeRenderer(extensionProvider, extensionType, extensionKey);
66
+ if (node.type === 'multiBodiedExtension') {
67
+ result = jsx(NodeRenderer, {
68
+ node: node,
69
+ actions: actions
70
+ });
71
+ } else if (node.type === 'inlineExtension') {
72
+ result = jsx(InlineNodeRendererWrapper, null, jsx(NodeRenderer, {
73
+ node: node
74
+ }));
75
+ } else {
76
+ result = jsx(NodeRenderer, {
77
+ node: node
34
78
  });
35
79
  }
36
- });
37
- });
38
- _defineProperty(this, "getNodeRenderer", memoizeOne(getNodeRenderer));
39
- _defineProperty(this, "renderExtensionNode", extensionProvider => {
40
- var _marks$find, _marks$find$attrs;
41
- const {
42
- extensionHandlers,
43
- rendererContext,
44
- extensionType,
45
- extensionKey,
46
- parameters,
47
- content,
48
- text,
49
- type,
50
- localId,
51
- marks,
52
- actions
53
- } = this.props;
54
- const fragmentLocalId = marks === null || marks === void 0 ? void 0 : (_marks$find = marks.find(m => m.type.name === 'fragment')) === null || _marks$find === void 0 ? void 0 : (_marks$find$attrs = _marks$find.attrs) === null || _marks$find$attrs === void 0 ? void 0 : _marks$find$attrs.localId;
55
- const node = {
56
- type,
57
- extensionKey,
58
- extensionType,
59
- parameters,
60
- content: content || text,
61
- localId,
62
- fragmentLocalId
63
- };
64
- let result = null;
65
- try {
66
- if (extensionHandlers && extensionHandlers[extensionType]) {
67
- const render = getExtensionRenderer(extensionHandlers[extensionType]);
68
- result = render(node, rendererContext.adDoc);
69
- }
70
- if (!result && extensionProvider) {
71
- const NodeRenderer = this.getNodeRenderer(extensionProvider, extensionType, extensionKey);
72
- if (node.type === 'multiBodiedExtension') {
73
- result = jsx(NodeRenderer, {
74
- node: node,
75
- actions: actions
76
- });
77
- } else if (node.type === 'inlineExtension') {
78
- result = jsx(InlineNodeRendererWrapper, null, jsx(NodeRenderer, {
79
- node: node
80
- }));
81
- } else {
82
- result = jsx(NodeRenderer, {
83
- node: node
84
- });
85
- }
86
- }
87
- } catch (e) {
88
- /** We don't want this error to block renderer */
89
- /** We keep rendering the default content */
90
80
  }
91
- return this.props.children({
92
- result
93
- });
94
- });
95
- _defineProperty(this, "setupAndRenderExtensionNode", providers => {
96
- const {
97
- extensionProvider
98
- } = this.state;
99
- if (!extensionProvider && providers.extensionProvider) {
100
- this.handleProvider('extensionProvider', providers.extensionProvider);
101
- }
102
- return this.renderExtensionNode(extensionProvider);
103
- });
104
- }
105
- UNSAFE_componentWillMount() {
106
- this.mounted = true;
107
- }
108
- componentWillUnmount() {
109
- this.mounted = false;
110
- }
111
- render() {
112
- const {
113
- providers
114
- } = this.props;
115
- if (!providers) {
116
- return this.setupAndRenderExtensionNode({});
81
+ } catch (e) {
82
+ /** We don't want this error to block renderer */
83
+ /** We keep rendering the default content */
117
84
  }
118
- return jsx(WithProviders, {
119
- providers: ['extensionProvider'],
120
- providerFactory: providers,
121
- renderNode: this.setupAndRenderExtensionNode
85
+ return children({
86
+ result
122
87
  });
88
+ }, [actions, children, content, extensionHandlers, extensionKey, extensionType, localGetNodeRenderer, localId, marks, parameters, rendererContext === null || rendererContext === void 0 ? void 0 : rendererContext.adDoc, text, type]);
89
+ const setupAndRenderExtensionNode = React.useCallback(providers => {
90
+ if (!extensionProvider && providers.extensionProvider) {
91
+ handleProvider('extensionProvider', providers.extensionProvider);
92
+ }
93
+ return renderExtensionNode(extensionProvider);
94
+ }, [extensionProvider, handleProvider, renderExtensionNode]);
95
+ React.useEffect(() => {
96
+ isMounted.current = true;
97
+ return () => {
98
+ isMounted.current = false;
99
+ };
100
+ }, []);
101
+ if (!props.providers) {
102
+ return setupAndRenderExtensionNode({});
123
103
  }
104
+ return jsx(WithProviders, {
105
+ providers: ['extensionProvider'],
106
+ providerFactory: props.providers,
107
+ renderNode: setupAndRenderExtensionNode
108
+ });
124
109
  }
125
110
  const InlineNodeRendererWrapper = ({
126
111
  children
127
112
  }) => {
128
- if (getBooleanFF('platform.editor.inline_extension.extended_lcqdn')) {
113
+ if (fg('platform.editor.inline_extension.extended_lcqdn')) {
129
114
  return (
130
115
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
131
116
  jsx("div", {
@@ -116,12 +116,12 @@ export class MediaCardView extends Component {
116
116
  this.saveFileState(id);
117
117
  }
118
118
  }
119
- UNSAFE_componentWillReceiveProps(newProps) {
119
+ componentDidUpdate(prevProps) {
120
120
  const {
121
- id: newId
122
- } = newProps;
123
- if (newId && newId !== this.props.id) {
124
- this.saveFileState(newId);
121
+ id: oldId
122
+ } = prevProps;
123
+ if (this.props.id && oldId !== this.props.id) {
124
+ this.saveFileState(this.props.id);
125
125
  }
126
126
  }
127
127
  componentWillUnmount() {
@@ -38,7 +38,7 @@ import { nodeToReact } from '../../react/nodes';
38
38
  export const NORMAL_SEVERITY_THRESHOLD = 2000;
39
39
  export const DEGRADED_SEVERITY_THRESHOLD = 3000;
40
40
  const packageName = "@atlaskit/renderer";
41
- const packageVersion = "109.41.0";
41
+ const packageVersion = "109.42.1";
42
42
  export const defaultNodeComponents = nodeToReact;
43
43
  export class Renderer extends PureComponent {
44
44
  constructor(props) {
@@ -1,108 +1,58 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
- import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
2
  import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
4
- import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
5
- import _createClass from "@babel/runtime/helpers/createClass";
6
- import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
7
- import _inherits from "@babel/runtime/helpers/inherits";
8
- import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
9
- import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
10
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
4
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
11
5
  var _excluded = ["contextIdentifierProvider", "objectAri", "isRenderer"];
12
6
  import _regeneratorRuntime from "@babel/runtime/regenerator";
13
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
14
- function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
15
7
  import React from 'react';
16
- import { Component } from 'react';
17
8
  import { ResourcedTaskItem } from '@atlaskit/task-decision';
18
- var TaskItemWithProviders = /*#__PURE__*/function (_Component) {
19
- _inherits(TaskItemWithProviders, _Component);
20
- var _super = _createSuper(TaskItemWithProviders);
21
- function TaskItemWithProviders() {
22
- var _this;
23
- _classCallCheck(this, TaskItemWithProviders);
24
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
25
- args[_key] = arguments[_key];
26
- }
27
- _this = _super.call.apply(_super, [this].concat(args));
28
- _defineProperty(_assertThisInitialized(_this), "state", {
29
- resolvedContextProvider: undefined
30
- });
31
- return _this;
32
- }
33
- _createClass(TaskItemWithProviders, [{
34
- key: "UNSAFE_componentWillMount",
35
- value: function UNSAFE_componentWillMount() {
36
- this.updateContextIdentifierProvider(this.props);
37
- }
38
- }, {
39
- key: "UNSAFE_componentWillReceiveProps",
40
- value: function UNSAFE_componentWillReceiveProps(nextProps) {
41
- if (nextProps.contextIdentifierProvider !== this.props.contextIdentifierProvider) {
42
- this.updateContextIdentifierProvider(nextProps);
43
- }
44
- }
45
- }, {
46
- key: "updateContextIdentifierProvider",
47
- value: function () {
48
- var _updateContextIdentifierProvider = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(props) {
49
- var resolvedContextProvider;
50
- return _regeneratorRuntime.wrap(function _callee$(_context) {
51
- while (1) switch (_context.prev = _context.next) {
52
- case 0:
53
- if (!props.contextIdentifierProvider) {
54
- _context.next = 13;
55
- break;
56
- }
57
- _context.prev = 1;
58
- _context.next = 4;
59
- return props.contextIdentifierProvider;
60
- case 4:
61
- resolvedContextProvider = _context.sent;
62
- this.setState({
63
- resolvedContextProvider: resolvedContextProvider
64
- });
9
+ export default function TaskItemWithProviders(props) {
10
+ var contextIdentifierProvider = props.contextIdentifierProvider,
11
+ objectAri = props.objectAri,
12
+ isRenderer = props.isRenderer,
13
+ otherProps = _objectWithoutProperties(props, _excluded);
14
+ var _React$useState = React.useState(undefined),
15
+ _React$useState2 = _slicedToArray(_React$useState, 2),
16
+ resolvedContextProvider = _React$useState2[0],
17
+ setResolvedContextProvider = _React$useState2[1];
18
+ var updateContextIdentifierProvider = React.useCallback( /*#__PURE__*/function () {
19
+ var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(contextIdentifierProvider) {
20
+ var _resolvedContextProvider;
21
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
22
+ while (1) switch (_context.prev = _context.next) {
23
+ case 0:
24
+ if (!contextIdentifierProvider) {
65
25
  _context.next = 11;
66
26
  break;
67
- case 8:
68
- _context.prev = 8;
69
- _context.t0 = _context["catch"](1);
70
- this.setState({
71
- resolvedContextProvider: undefined
72
- });
73
- case 11:
74
- _context.next = 14;
75
- break;
76
- case 13:
77
- this.setState({
78
- resolvedContextProvider: undefined
79
- });
80
- case 14:
81
- case "end":
82
- return _context.stop();
83
- }
84
- }, _callee, this, [[1, 8]]);
85
- }));
86
- function updateContextIdentifierProvider(_x) {
87
- return _updateContextIdentifierProvider.apply(this, arguments);
88
- }
89
- return updateContextIdentifierProvider;
90
- }()
91
- }, {
92
- key: "render",
93
- value: function render() {
94
- var _this$props = this.props,
95
- contextIdentifierProvider = _this$props.contextIdentifierProvider,
96
- objectAri = _this$props.objectAri,
97
- isRenderer = _this$props.isRenderer,
98
- otherProps = _objectWithoutProperties(_this$props, _excluded);
99
- var resolvedObjectId = this.state.resolvedContextProvider && this.state.resolvedContextProvider.objectId || objectAri;
100
- return /*#__PURE__*/React.createElement(ResourcedTaskItem, _extends({}, otherProps, {
101
- objectAri: resolvedObjectId,
102
- isRenderer: isRenderer
103
- }));
104
- }
105
- }]);
106
- return TaskItemWithProviders;
107
- }(Component);
108
- export { TaskItemWithProviders as default };
27
+ }
28
+ _context.prev = 1;
29
+ _context.next = 4;
30
+ return contextIdentifierProvider;
31
+ case 4:
32
+ _resolvedContextProvider = _context.sent;
33
+ setResolvedContextProvider(_resolvedContextProvider);
34
+ return _context.abrupt("return");
35
+ case 9:
36
+ _context.prev = 9;
37
+ _context.t0 = _context["catch"](1);
38
+ case 11:
39
+ setResolvedContextProvider(undefined);
40
+ case 12:
41
+ case "end":
42
+ return _context.stop();
43
+ }
44
+ }, _callee, null, [[1, 9]]);
45
+ }));
46
+ return function (_x) {
47
+ return _ref.apply(this, arguments);
48
+ };
49
+ }(), []);
50
+ React.useMemo(function () {
51
+ updateContextIdentifierProvider(props.contextIdentifierProvider);
52
+ }, [props.contextIdentifierProvider, updateContextIdentifierProvider]);
53
+ var resolvedObjectId = resolvedContextProvider && resolvedContextProvider.objectId || objectAri;
54
+ return /*#__PURE__*/React.createElement(ResourcedTaskItem, _extends({}, otherProps, {
55
+ objectAri: resolvedObjectId,
56
+ isRenderer: isRenderer
57
+ }));
58
+ }
@@ -1,12 +1,4 @@
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(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
9
- function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
10
2
  /** @jsx jsx */
11
3
  // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
12
4
  import { css, jsx } from '@emotion/react';
@@ -15,7 +7,7 @@ import memoizeOne from 'memoize-one';
15
7
  import { getNodeRenderer } from '@atlaskit/editor-common/extensions';
16
8
  import { WithProviders } from '@atlaskit/editor-common/provider-factory';
17
9
  import { getExtensionRenderer } from '@atlaskit/editor-common/utils';
18
- import { getBooleanFF } from '@atlaskit/platform-feature-flags';
10
+ import { fg } from '@atlaskit/platform-feature-flags';
19
11
  var inlineExtensionStyle = css({
20
12
  display: 'inline-block',
21
13
  maxWidth: '100%',
@@ -27,124 +19,103 @@ var inlineExtensionStyle = css({
27
19
  maxWidth: '100%'
28
20
  }
29
21
  });
30
- var ExtensionRenderer = /*#__PURE__*/function (_React$Component) {
31
- _inherits(ExtensionRenderer, _React$Component);
32
- var _super = _createSuper(ExtensionRenderer);
33
- function ExtensionRenderer() {
34
- var _this;
35
- _classCallCheck(this, ExtensionRenderer);
36
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
37
- args[_key] = arguments[_key];
38
- }
39
- _this = _super.call.apply(_super, [this].concat(args));
40
- _defineProperty(_assertThisInitialized(_this), "state", {
41
- extensionProvider: null
42
- });
43
- _defineProperty(_assertThisInitialized(_this), "mounted", false);
44
- _defineProperty(_assertThisInitialized(_this), "handleProvider", function (name, providerPromise) {
45
- providerPromise && providerPromise.then(function (provider) {
46
- if (_this.mounted) {
47
- _this.setState(_defineProperty({}, name, provider));
48
- }
49
- });
50
- });
51
- _defineProperty(_assertThisInitialized(_this), "getNodeRenderer", memoizeOne(getNodeRenderer));
52
- _defineProperty(_assertThisInitialized(_this), "renderExtensionNode", function (extensionProvider) {
53
- var _marks$find;
54
- var _this$props = _this.props,
55
- extensionHandlers = _this$props.extensionHandlers,
56
- rendererContext = _this$props.rendererContext,
57
- extensionType = _this$props.extensionType,
58
- extensionKey = _this$props.extensionKey,
59
- parameters = _this$props.parameters,
60
- content = _this$props.content,
61
- text = _this$props.text,
62
- type = _this$props.type,
63
- localId = _this$props.localId,
64
- marks = _this$props.marks,
65
- actions = _this$props.actions;
66
- var fragmentLocalId = marks === null || marks === void 0 || (_marks$find = marks.find(function (m) {
67
- return m.type.name === 'fragment';
68
- })) === null || _marks$find === void 0 || (_marks$find = _marks$find.attrs) === null || _marks$find === void 0 ? void 0 : _marks$find.localId;
69
- var node = {
70
- type: type,
71
- extensionKey: extensionKey,
72
- extensionType: extensionType,
73
- parameters: parameters,
74
- content: content || text,
75
- localId: localId,
76
- fragmentLocalId: fragmentLocalId
77
- };
78
- var result = null;
79
- try {
80
- if (extensionHandlers && extensionHandlers[extensionType]) {
81
- var render = getExtensionRenderer(extensionHandlers[extensionType]);
82
- result = render(node, rendererContext.adDoc);
83
- }
84
- if (!result && extensionProvider) {
85
- var NodeRenderer = _this.getNodeRenderer(extensionProvider, extensionType, extensionKey);
86
- if (node.type === 'multiBodiedExtension') {
87
- result = jsx(NodeRenderer, {
88
- node: node,
89
- actions: actions
90
- });
91
- } else if (node.type === 'inlineExtension') {
92
- result = jsx(InlineNodeRendererWrapper, null, jsx(NodeRenderer, {
93
- node: node
94
- }));
95
- } else {
96
- result = jsx(NodeRenderer, {
97
- node: node
98
- });
99
- }
100
- }
101
- } catch (e) {
102
- /** We don't want this error to block renderer */
103
- /** We keep rendering the default content */
22
+ export default function ExtensionRenderer(props) {
23
+ var extensionHandlers = props.extensionHandlers,
24
+ rendererContext = props.rendererContext,
25
+ extensionType = props.extensionType,
26
+ extensionKey = props.extensionKey,
27
+ parameters = props.parameters,
28
+ content = props.content,
29
+ text = props.text,
30
+ type = props.type,
31
+ localId = props.localId,
32
+ marks = props.marks,
33
+ actions = props.actions,
34
+ children = props.children;
35
+ var isMounted = React.useRef(true);
36
+ var localGetNodeRenderer = React.useMemo(function () {
37
+ return memoizeOne(getNodeRenderer);
38
+ }, []);
39
+ var _React$useState = React.useState(null),
40
+ _React$useState2 = _slicedToArray(_React$useState, 2),
41
+ extensionProvider = _React$useState2[0],
42
+ setExtensionProvider = _React$useState2[1];
43
+ var handleProvider = React.useCallback(function (name, providerPromise) {
44
+ providerPromise && providerPromise.then(function (provider) {
45
+ if (isMounted.current) {
46
+ setExtensionProvider(provider);
104
47
  }
105
- return _this.props.children({
106
- result: result
107
- });
108
48
  });
109
- _defineProperty(_assertThisInitialized(_this), "setupAndRenderExtensionNode", function (providers) {
110
- var extensionProvider = _this.state.extensionProvider;
111
- if (!extensionProvider && providers.extensionProvider) {
112
- _this.handleProvider('extensionProvider', providers.extensionProvider);
49
+ }, []);
50
+ var renderExtensionNode = React.useCallback(function (extensionProvider) {
51
+ var _marks$find;
52
+ var fragmentLocalId = marks === null || marks === void 0 || (_marks$find = marks.find(function (m) {
53
+ return m.type.name === 'fragment';
54
+ })) === null || _marks$find === void 0 || (_marks$find = _marks$find.attrs) === null || _marks$find === void 0 ? void 0 : _marks$find.localId;
55
+ var node = {
56
+ type: type,
57
+ extensionKey: extensionKey,
58
+ extensionType: extensionType,
59
+ parameters: parameters,
60
+ content: content || text,
61
+ localId: localId,
62
+ fragmentLocalId: fragmentLocalId
63
+ };
64
+ var result = null;
65
+ try {
66
+ if (extensionHandlers && extensionHandlers[extensionType]) {
67
+ var render = getExtensionRenderer(extensionHandlers[extensionType]);
68
+ result = render(node, rendererContext.adDoc);
113
69
  }
114
- return _this.renderExtensionNode(extensionProvider);
115
- });
116
- return _this;
117
- }
118
- _createClass(ExtensionRenderer, [{
119
- key: "UNSAFE_componentWillMount",
120
- value: function UNSAFE_componentWillMount() {
121
- this.mounted = true;
122
- }
123
- }, {
124
- key: "componentWillUnmount",
125
- value: function componentWillUnmount() {
126
- this.mounted = false;
127
- }
128
- }, {
129
- key: "render",
130
- value: function render() {
131
- var providers = this.props.providers;
132
- if (!providers) {
133
- return this.setupAndRenderExtensionNode({});
70
+ if (!result && extensionProvider) {
71
+ var NodeRenderer = localGetNodeRenderer(extensionProvider, extensionType, extensionKey);
72
+ if (node.type === 'multiBodiedExtension') {
73
+ result = jsx(NodeRenderer, {
74
+ node: node,
75
+ actions: actions
76
+ });
77
+ } else if (node.type === 'inlineExtension') {
78
+ result = jsx(InlineNodeRendererWrapper, null, jsx(NodeRenderer, {
79
+ node: node
80
+ }));
81
+ } else {
82
+ result = jsx(NodeRenderer, {
83
+ node: node
84
+ });
85
+ }
134
86
  }
135
- return jsx(WithProviders, {
136
- providers: ['extensionProvider'],
137
- providerFactory: providers,
138
- renderNode: this.setupAndRenderExtensionNode
139
- });
87
+ } catch (e) {
88
+ /** We don't want this error to block renderer */
89
+ /** We keep rendering the default content */
140
90
  }
141
- }]);
142
- return ExtensionRenderer;
143
- }(React.Component);
144
- export { ExtensionRenderer as default };
91
+ return children({
92
+ result: result
93
+ });
94
+ }, [actions, children, content, extensionHandlers, extensionKey, extensionType, localGetNodeRenderer, localId, marks, parameters, rendererContext === null || rendererContext === void 0 ? void 0 : rendererContext.adDoc, text, type]);
95
+ var setupAndRenderExtensionNode = React.useCallback(function (providers) {
96
+ if (!extensionProvider && providers.extensionProvider) {
97
+ handleProvider('extensionProvider', providers.extensionProvider);
98
+ }
99
+ return renderExtensionNode(extensionProvider);
100
+ }, [extensionProvider, handleProvider, renderExtensionNode]);
101
+ React.useEffect(function () {
102
+ isMounted.current = true;
103
+ return function () {
104
+ isMounted.current = false;
105
+ };
106
+ }, []);
107
+ if (!props.providers) {
108
+ return setupAndRenderExtensionNode({});
109
+ }
110
+ return jsx(WithProviders, {
111
+ providers: ['extensionProvider'],
112
+ providerFactory: props.providers,
113
+ renderNode: setupAndRenderExtensionNode
114
+ });
115
+ }
145
116
  var InlineNodeRendererWrapper = function InlineNodeRendererWrapper(_ref) {
146
117
  var children = _ref.children;
147
- if (getBooleanFF('platform.editor.inline_extension.extended_lcqdn')) {
118
+ if (fg('platform.editor.inline_extension.extended_lcqdn')) {
148
119
  return (
149
120
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
150
121
  jsx("div", {
@@ -172,11 +172,11 @@ export var MediaCardView = /*#__PURE__*/function (_Component) {
172
172
  return componentDidMount;
173
173
  }()
174
174
  }, {
175
- key: "UNSAFE_componentWillReceiveProps",
176
- value: function UNSAFE_componentWillReceiveProps(newProps) {
177
- var newId = newProps.id;
178
- if (newId && newId !== this.props.id) {
179
- this.saveFileState(newId);
175
+ key: "componentDidUpdate",
176
+ value: function componentDidUpdate(prevProps) {
177
+ var oldId = prevProps.id;
178
+ if (this.props.id && oldId !== this.props.id) {
179
+ this.saveFileState(this.props.id);
180
180
  }
181
181
  }
182
182
  }, {