@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.
- package/CHANGELOG.md +18 -0
- package/afm-jira/tsconfig.json +3 -0
- package/dist/cjs/react/nodes/task-item-with-providers.js +53 -104
- package/dist/cjs/ui/ExtensionRenderer.js +95 -120
- package/dist/cjs/ui/MediaCard.js +5 -5
- package/dist/cjs/ui/Renderer/index.js +1 -1
- package/dist/es2019/react/nodes/task-item-with-providers.js +24 -46
- package/dist/es2019/ui/ExtensionRenderer.js +83 -98
- package/dist/es2019/ui/MediaCard.js +5 -5
- package/dist/es2019/ui/Renderer/index.js +1 -1
- package/dist/esm/react/nodes/task-item-with-providers.js +50 -100
- package/dist/esm/ui/ExtensionRenderer.js +92 -121
- package/dist/esm/ui/MediaCard.js +5 -5
- package/dist/esm/ui/Renderer/index.js +1 -1
- package/dist/types/react/nodes/task-item-with-providers.d.ts +2 -8
- package/dist/types/ui/ExtensionRenderer.d.ts +2 -17
- package/dist/types/ui/MediaCard.d.ts +1 -1
- package/dist/types-ts4.5/react/nodes/task-item-with-providers.d.ts +2 -8
- package/dist/types-ts4.5/ui/ExtensionRenderer.d.ts +2 -17
- package/dist/types-ts4.5/ui/MediaCard.d.ts +1 -1
- package/package.json +5 -5
|
@@ -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 {
|
|
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
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
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
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
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
|
-
|
|
92
|
-
|
|
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
|
|
119
|
-
|
|
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 (
|
|
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
|
-
|
|
119
|
+
componentDidUpdate(prevProps) {
|
|
120
120
|
const {
|
|
121
|
-
id:
|
|
122
|
-
} =
|
|
123
|
-
if (
|
|
124
|
-
this.saveFileState(
|
|
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
|
+
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
|
|
5
|
-
import
|
|
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
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
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
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
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
|
|
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 {
|
|
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
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
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
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
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
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
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
|
-
|
|
136
|
-
|
|
137
|
-
|
|
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
|
-
|
|
143
|
-
}
|
|
144
|
-
|
|
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 (
|
|
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", {
|
package/dist/esm/ui/MediaCard.js
CHANGED
|
@@ -172,11 +172,11 @@ export var MediaCardView = /*#__PURE__*/function (_Component) {
|
|
|
172
172
|
return componentDidMount;
|
|
173
173
|
}()
|
|
174
174
|
}, {
|
|
175
|
-
key: "
|
|
176
|
-
value: function
|
|
177
|
-
var
|
|
178
|
-
if (
|
|
179
|
-
this.saveFileState(
|
|
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
|
}, {
|