@atlaskit/renderer 133.11.2 → 133.11.4
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 +14 -0
- package/dist/cjs/react/index.js +2 -0
- package/dist/cjs/react/nodes/extension.js +7 -1
- package/dist/cjs/ui/ExtensionRenderer.js +15 -7
- package/dist/cjs/ui/Renderer/index.js +2 -1
- package/dist/es2019/react/index.js +2 -0
- package/dist/es2019/react/nodes/extension.js +6 -0
- package/dist/es2019/ui/ExtensionRenderer.js +15 -7
- package/dist/es2019/ui/Renderer/index.js +2 -1
- package/dist/esm/react/index.js +2 -0
- package/dist/esm/react/nodes/extension.js +7 -1
- package/dist/esm/ui/ExtensionRenderer.js +15 -7
- package/dist/esm/ui/Renderer/index.js +2 -1
- package/dist/types/react/index.d.ts +3 -1
- package/dist/types/react/nodes/extension.d.ts +7 -0
- package/dist/types/react/types.d.ts +1 -0
- package/dist/types/ui/ExtensionRenderer.d.ts +2 -1
- package/dist/types/ui/renderer-props.d.ts +14 -5
- package/package.json +6 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# @atlaskit/renderer
|
|
2
2
|
|
|
3
|
+
## 133.11.4
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies
|
|
8
|
+
|
|
9
|
+
## 133.11.3
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- [`9e5089f1618b3`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/9e5089f1618b3) -
|
|
14
|
+
Add an option for products to hide extension fallback content while a provider is pending
|
|
15
|
+
- Updated dependencies
|
|
16
|
+
|
|
3
17
|
## 133.11.2
|
|
4
18
|
|
|
5
19
|
### Patch Changes
|
package/dist/cjs/react/index.js
CHANGED
|
@@ -215,6 +215,7 @@ var ReactSerializer = exports.default = /*#__PURE__*/function () {
|
|
|
215
215
|
this.emojiResourceConfig = init.emojiResourceConfig;
|
|
216
216
|
this.smartLinks = init.smartLinks;
|
|
217
217
|
this.extensionViewportSizes = init.extensionViewportSizes;
|
|
218
|
+
this.hideExtensionKeysWhilePending = init.hideExtensionKeysWhilePending;
|
|
218
219
|
this.getExtensionHeight = init.getExtensionHeight;
|
|
219
220
|
this.allowSelectAllTrap = init.allowSelectAllTrap;
|
|
220
221
|
this.nodeComponents = init.nodeComponents;
|
|
@@ -549,6 +550,7 @@ var ReactSerializer = exports.default = /*#__PURE__*/function () {
|
|
|
549
550
|
var path = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
550
551
|
return _objectSpread(_objectSpread({}, this.getProps(node, path)), {}, {
|
|
551
552
|
extensionViewportSizes: this.extensionViewportSizes,
|
|
553
|
+
hideExtensionKeysWhilePending: this.hideExtensionKeysWhilePending,
|
|
552
554
|
nodeHeight: (_this$getExtensionHei = this.getExtensionHeight) === null || _this$getExtensionHei === void 0 ? void 0 : _this$getExtensionHei.call(this, node),
|
|
553
555
|
shouldDisplayExtensionAsInline: this.shouldDisplayExtensionAsInline
|
|
554
556
|
});
|
|
@@ -187,7 +187,9 @@ var Extension = function Extension(props) {
|
|
|
187
187
|
, (0, _extends2.default)({}, props, {
|
|
188
188
|
type: "extension"
|
|
189
189
|
}), function (_ref4) {
|
|
190
|
-
var
|
|
190
|
+
var _props$hideExtensionK;
|
|
191
|
+
var isExtensionProviderPending = _ref4.isExtensionProviderPending,
|
|
192
|
+
result = _ref4.result;
|
|
191
193
|
try {
|
|
192
194
|
// Return the result directly if it's a valid JSX.Element
|
|
193
195
|
if (result && /*#__PURE__*/_react2.default.isValidElement(result)) {
|
|
@@ -204,6 +206,10 @@ var Extension = function Extension(props) {
|
|
|
204
206
|
/** We don't want this error to block renderer */
|
|
205
207
|
/** We keep rendering the default content */
|
|
206
208
|
}
|
|
209
|
+
if (isExtensionProviderPending && (_props$hideExtensionK = props.hideExtensionKeysWhilePending) !== null && _props$hideExtensionK !== void 0 && _props$hideExtensionK.includes(props.extensionKey)) {
|
|
210
|
+
return (0, _react.jsx)(_react2.default.Fragment, null);
|
|
211
|
+
}
|
|
212
|
+
|
|
207
213
|
// Always return default content if anything goes wrong
|
|
208
214
|
return renderExtension(text || 'extension', layout, {
|
|
209
215
|
isTopLevel: path.length < 1,
|
|
@@ -64,21 +64,28 @@ function ExtensionRenderer(props) {
|
|
|
64
64
|
var localGetNodeRenderer = _react2.default.useMemo(function () {
|
|
65
65
|
return (0, _memoizeOne.default)(_extensions.getNodeRenderer);
|
|
66
66
|
}, []);
|
|
67
|
+
/**
|
|
68
|
+
* null -> provider promise not yet settled (pending)
|
|
69
|
+
* undefined -> provider promise rejected (settled, no provider available)
|
|
70
|
+
* <provider> -> provider promise resolved
|
|
71
|
+
*/
|
|
67
72
|
var _React$useState = _react2.default.useState(null),
|
|
68
73
|
_React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
|
|
69
74
|
extensionProvider = _React$useState2[0],
|
|
70
75
|
setExtensionProvider = _React$useState2[1];
|
|
71
|
-
|
|
72
|
-
// Ignored via go/ees005
|
|
73
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
74
76
|
var handleProvider = _react2.default.useCallback(function (_name, providerPromise) {
|
|
75
|
-
providerPromise
|
|
77
|
+
providerPromise === null || providerPromise === void 0 || providerPromise.then(function (provider) {
|
|
76
78
|
if (isMounted.current) {
|
|
77
79
|
setExtensionProvider(provider);
|
|
78
80
|
}
|
|
81
|
+
}, function () {
|
|
82
|
+
// Consumers can use this to distinguish a rejected provider from a pending one
|
|
83
|
+
if (isMounted.current) {
|
|
84
|
+
setExtensionProvider(undefined);
|
|
85
|
+
}
|
|
79
86
|
});
|
|
80
87
|
}, []);
|
|
81
|
-
var renderExtensionNode = _react2.default.useCallback(function (extensionProvider) {
|
|
88
|
+
var renderExtensionNode = _react2.default.useCallback(function (extensionProvider, isExtensionProviderPending) {
|
|
82
89
|
var _marks$find, _node$parameters;
|
|
83
90
|
var fragmentLocalId = marks === null || marks === void 0 || (_marks$find = marks.find(function (m) {
|
|
84
91
|
return m.type.name === 'fragment';
|
|
@@ -123,15 +130,16 @@ function ExtensionRenderer(props) {
|
|
|
123
130
|
/** We keep rendering the default content */
|
|
124
131
|
}
|
|
125
132
|
return children({
|
|
133
|
+
isExtensionProviderPending: isExtensionProviderPending,
|
|
126
134
|
node: node,
|
|
127
135
|
result: result
|
|
128
136
|
});
|
|
129
137
|
}, [actions, children, content, extensionHandlers, extensionKey, extensionType, localGetNodeRenderer, localId, marks, parameters, rendererContext === null || rendererContext === void 0 ? void 0 : rendererContext.adDoc, text, type]);
|
|
130
138
|
var setupAndRenderExtensionNode = _react2.default.useCallback(function (providers) {
|
|
131
|
-
if (
|
|
139
|
+
if (extensionProvider === null && providers.extensionProvider) {
|
|
132
140
|
handleProvider('extensionProvider', providers.extensionProvider);
|
|
133
141
|
}
|
|
134
|
-
return renderExtensionNode(extensionProvider);
|
|
142
|
+
return renderExtensionNode(extensionProvider, Boolean(providers.extensionProvider) && extensionProvider === null);
|
|
135
143
|
}, [extensionProvider, handleProvider, renderExtensionNode]);
|
|
136
144
|
_react2.default.useEffect(function () {
|
|
137
145
|
isMounted.current = true;
|
|
@@ -72,7 +72,7 @@ var DEGRADED_SEVERITY_THRESHOLD = exports.DEGRADED_SEVERITY_THRESHOLD = 3000;
|
|
|
72
72
|
var TABLE_INFO_TIMEOUT = 10000;
|
|
73
73
|
var RENDER_EVENT_SAMPLE_RATE = 0.1;
|
|
74
74
|
var packageName = "@atlaskit/renderer";
|
|
75
|
-
var packageVersion = "133.11.
|
|
75
|
+
var packageVersion = "133.11.3";
|
|
76
76
|
var setAsQueryContainerStyles = (0, _react2.css)({
|
|
77
77
|
containerName: 'ak-renderer-wrapper',
|
|
78
78
|
containerType: 'inline-size'
|
|
@@ -237,6 +237,7 @@ var RendererFunctionalComponent = exports.RendererFunctionalComponent = function
|
|
|
237
237
|
providers: providerFactory,
|
|
238
238
|
eventHandlers: props.eventHandlers,
|
|
239
239
|
extensionHandlers: props.extensionHandlers,
|
|
240
|
+
hideExtensionKeysWhilePending: props.hideExtensionKeysWhilePending,
|
|
240
241
|
portal: props.portal,
|
|
241
242
|
objectContext: _objectSpread(_objectSpread({
|
|
242
243
|
adDoc: props.shouldRemoveEmptySpaceAroundContent ? (0, _rendererHelper.removeEmptySpaceAroundContent)(props.document) : props.document,
|
|
@@ -202,6 +202,7 @@ export default class ReactSerializer {
|
|
|
202
202
|
this.emojiResourceConfig = init.emojiResourceConfig;
|
|
203
203
|
this.smartLinks = init.smartLinks;
|
|
204
204
|
this.extensionViewportSizes = init.extensionViewportSizes;
|
|
205
|
+
this.hideExtensionKeysWhilePending = init.hideExtensionKeysWhilePending;
|
|
205
206
|
this.getExtensionHeight = init.getExtensionHeight;
|
|
206
207
|
this.allowSelectAllTrap = init.allowSelectAllTrap;
|
|
207
208
|
this.nodeComponents = init.nodeComponents;
|
|
@@ -497,6 +498,7 @@ export default class ReactSerializer {
|
|
|
497
498
|
return {
|
|
498
499
|
...this.getProps(node, path),
|
|
499
500
|
extensionViewportSizes: this.extensionViewportSizes,
|
|
501
|
+
hideExtensionKeysWhilePending: this.hideExtensionKeysWhilePending,
|
|
500
502
|
nodeHeight: (_this$getExtensionHei = this.getExtensionHeight) === null || _this$getExtensionHei === void 0 ? void 0 : _this$getExtensionHei.call(this, node),
|
|
501
503
|
shouldDisplayExtensionAsInline: this.shouldDisplayExtensionAsInline
|
|
502
504
|
};
|
|
@@ -168,8 +168,10 @@ const Extension = props => {
|
|
|
168
168
|
, _extends({}, props, {
|
|
169
169
|
type: "extension"
|
|
170
170
|
}), ({
|
|
171
|
+
isExtensionProviderPending,
|
|
171
172
|
result
|
|
172
173
|
}) => {
|
|
174
|
+
var _props$hideExtensionK;
|
|
173
175
|
try {
|
|
174
176
|
// Return the result directly if it's a valid JSX.Element
|
|
175
177
|
if (result && /*#__PURE__*/React.isValidElement(result)) {
|
|
@@ -186,6 +188,10 @@ const Extension = props => {
|
|
|
186
188
|
/** We don't want this error to block renderer */
|
|
187
189
|
/** We keep rendering the default content */
|
|
188
190
|
}
|
|
191
|
+
if (isExtensionProviderPending && (_props$hideExtensionK = props.hideExtensionKeysWhilePending) !== null && _props$hideExtensionK !== void 0 && _props$hideExtensionK.includes(props.extensionKey)) {
|
|
192
|
+
return jsx(React.Fragment, null);
|
|
193
|
+
}
|
|
194
|
+
|
|
189
195
|
// Always return default content if anything goes wrong
|
|
190
196
|
return renderExtension(text || 'extension', layout, {
|
|
191
197
|
isTopLevel: path.length < 1,
|
|
@@ -53,18 +53,25 @@ export default function ExtensionRenderer(props) {
|
|
|
53
53
|
} = props;
|
|
54
54
|
const isMounted = React.useRef(true);
|
|
55
55
|
const localGetNodeRenderer = React.useMemo(() => memoizeOne(getNodeRenderer), []);
|
|
56
|
+
/**
|
|
57
|
+
* null -> provider promise not yet settled (pending)
|
|
58
|
+
* undefined -> provider promise rejected (settled, no provider available)
|
|
59
|
+
* <provider> -> provider promise resolved
|
|
60
|
+
*/
|
|
56
61
|
const [extensionProvider, setExtensionProvider] = React.useState(null);
|
|
57
|
-
|
|
58
|
-
// Ignored via go/ees005
|
|
59
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
60
62
|
const handleProvider = React.useCallback((_name, providerPromise) => {
|
|
61
|
-
providerPromise
|
|
63
|
+
providerPromise === null || providerPromise === void 0 ? void 0 : providerPromise.then(provider => {
|
|
62
64
|
if (isMounted.current) {
|
|
63
65
|
setExtensionProvider(provider);
|
|
64
66
|
}
|
|
67
|
+
}, () => {
|
|
68
|
+
// Consumers can use this to distinguish a rejected provider from a pending one
|
|
69
|
+
if (isMounted.current) {
|
|
70
|
+
setExtensionProvider(undefined);
|
|
71
|
+
}
|
|
65
72
|
});
|
|
66
73
|
}, []);
|
|
67
|
-
const renderExtensionNode = React.useCallback(extensionProvider => {
|
|
74
|
+
const renderExtensionNode = React.useCallback((extensionProvider, isExtensionProviderPending) => {
|
|
68
75
|
var _marks$find, _marks$find$attrs, _node$parameters, _node$parameters$macr;
|
|
69
76
|
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;
|
|
70
77
|
const node = {
|
|
@@ -107,15 +114,16 @@ export default function ExtensionRenderer(props) {
|
|
|
107
114
|
/** We keep rendering the default content */
|
|
108
115
|
}
|
|
109
116
|
return children({
|
|
117
|
+
isExtensionProviderPending,
|
|
110
118
|
node,
|
|
111
119
|
result
|
|
112
120
|
});
|
|
113
121
|
}, [actions, children, content, extensionHandlers, extensionKey, extensionType, localGetNodeRenderer, localId, marks, parameters, rendererContext === null || rendererContext === void 0 ? void 0 : rendererContext.adDoc, text, type]);
|
|
114
122
|
const setupAndRenderExtensionNode = React.useCallback(providers => {
|
|
115
|
-
if (
|
|
123
|
+
if (extensionProvider === null && providers.extensionProvider) {
|
|
116
124
|
handleProvider('extensionProvider', providers.extensionProvider);
|
|
117
125
|
}
|
|
118
|
-
return renderExtensionNode(extensionProvider);
|
|
126
|
+
return renderExtensionNode(extensionProvider, Boolean(providers.extensionProvider) && extensionProvider === null);
|
|
119
127
|
}, [extensionProvider, handleProvider, renderExtensionNode]);
|
|
120
128
|
React.useEffect(() => {
|
|
121
129
|
isMounted.current = true;
|
|
@@ -58,7 +58,7 @@ export const DEGRADED_SEVERITY_THRESHOLD = 3000;
|
|
|
58
58
|
const TABLE_INFO_TIMEOUT = 10000;
|
|
59
59
|
const RENDER_EVENT_SAMPLE_RATE = 0.1;
|
|
60
60
|
const packageName = "@atlaskit/renderer";
|
|
61
|
-
const packageVersion = "133.11.
|
|
61
|
+
const packageVersion = "133.11.3";
|
|
62
62
|
const setAsQueryContainerStyles = css({
|
|
63
63
|
containerName: 'ak-renderer-wrapper',
|
|
64
64
|
containerType: 'inline-size'
|
|
@@ -229,6 +229,7 @@ export const RendererFunctionalComponent = props => {
|
|
|
229
229
|
providers: providerFactory,
|
|
230
230
|
eventHandlers: props.eventHandlers,
|
|
231
231
|
extensionHandlers: props.extensionHandlers,
|
|
232
|
+
hideExtensionKeysWhilePending: props.hideExtensionKeysWhilePending,
|
|
232
233
|
portal: props.portal,
|
|
233
234
|
objectContext: {
|
|
234
235
|
adDoc: props.shouldRemoveEmptySpaceAroundContent ? removeEmptySpaceAroundContent(props.document) : props.document,
|
package/dist/esm/react/index.js
CHANGED
|
@@ -208,6 +208,7 @@ var ReactSerializer = /*#__PURE__*/function () {
|
|
|
208
208
|
this.emojiResourceConfig = init.emojiResourceConfig;
|
|
209
209
|
this.smartLinks = init.smartLinks;
|
|
210
210
|
this.extensionViewportSizes = init.extensionViewportSizes;
|
|
211
|
+
this.hideExtensionKeysWhilePending = init.hideExtensionKeysWhilePending;
|
|
211
212
|
this.getExtensionHeight = init.getExtensionHeight;
|
|
212
213
|
this.allowSelectAllTrap = init.allowSelectAllTrap;
|
|
213
214
|
this.nodeComponents = init.nodeComponents;
|
|
@@ -542,6 +543,7 @@ var ReactSerializer = /*#__PURE__*/function () {
|
|
|
542
543
|
var path = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
543
544
|
return _objectSpread(_objectSpread({}, this.getProps(node, path)), {}, {
|
|
544
545
|
extensionViewportSizes: this.extensionViewportSizes,
|
|
546
|
+
hideExtensionKeysWhilePending: this.hideExtensionKeysWhilePending,
|
|
545
547
|
nodeHeight: (_this$getExtensionHei = this.getExtensionHeight) === null || _this$getExtensionHei === void 0 ? void 0 : _this$getExtensionHei.call(this, node),
|
|
546
548
|
shouldDisplayExtensionAsInline: this.shouldDisplayExtensionAsInline
|
|
547
549
|
});
|
|
@@ -177,7 +177,9 @@ var Extension = function Extension(props) {
|
|
|
177
177
|
, _extends({}, props, {
|
|
178
178
|
type: "extension"
|
|
179
179
|
}), function (_ref4) {
|
|
180
|
-
var
|
|
180
|
+
var _props$hideExtensionK;
|
|
181
|
+
var isExtensionProviderPending = _ref4.isExtensionProviderPending,
|
|
182
|
+
result = _ref4.result;
|
|
181
183
|
try {
|
|
182
184
|
// Return the result directly if it's a valid JSX.Element
|
|
183
185
|
if (result && /*#__PURE__*/React.isValidElement(result)) {
|
|
@@ -194,6 +196,10 @@ var Extension = function Extension(props) {
|
|
|
194
196
|
/** We don't want this error to block renderer */
|
|
195
197
|
/** We keep rendering the default content */
|
|
196
198
|
}
|
|
199
|
+
if (isExtensionProviderPending && (_props$hideExtensionK = props.hideExtensionKeysWhilePending) !== null && _props$hideExtensionK !== void 0 && _props$hideExtensionK.includes(props.extensionKey)) {
|
|
200
|
+
return jsx(React.Fragment, null);
|
|
201
|
+
}
|
|
202
|
+
|
|
197
203
|
// Always return default content if anything goes wrong
|
|
198
204
|
return renderExtension(text || 'extension', layout, {
|
|
199
205
|
isTopLevel: path.length < 1,
|
|
@@ -54,21 +54,28 @@ export default function ExtensionRenderer(props) {
|
|
|
54
54
|
var localGetNodeRenderer = React.useMemo(function () {
|
|
55
55
|
return memoizeOne(getNodeRenderer);
|
|
56
56
|
}, []);
|
|
57
|
+
/**
|
|
58
|
+
* null -> provider promise not yet settled (pending)
|
|
59
|
+
* undefined -> provider promise rejected (settled, no provider available)
|
|
60
|
+
* <provider> -> provider promise resolved
|
|
61
|
+
*/
|
|
57
62
|
var _React$useState = React.useState(null),
|
|
58
63
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
59
64
|
extensionProvider = _React$useState2[0],
|
|
60
65
|
setExtensionProvider = _React$useState2[1];
|
|
61
|
-
|
|
62
|
-
// Ignored via go/ees005
|
|
63
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
64
66
|
var handleProvider = React.useCallback(function (_name, providerPromise) {
|
|
65
|
-
providerPromise
|
|
67
|
+
providerPromise === null || providerPromise === void 0 || providerPromise.then(function (provider) {
|
|
66
68
|
if (isMounted.current) {
|
|
67
69
|
setExtensionProvider(provider);
|
|
68
70
|
}
|
|
71
|
+
}, function () {
|
|
72
|
+
// Consumers can use this to distinguish a rejected provider from a pending one
|
|
73
|
+
if (isMounted.current) {
|
|
74
|
+
setExtensionProvider(undefined);
|
|
75
|
+
}
|
|
69
76
|
});
|
|
70
77
|
}, []);
|
|
71
|
-
var renderExtensionNode = React.useCallback(function (extensionProvider) {
|
|
78
|
+
var renderExtensionNode = React.useCallback(function (extensionProvider, isExtensionProviderPending) {
|
|
72
79
|
var _marks$find, _node$parameters;
|
|
73
80
|
var fragmentLocalId = marks === null || marks === void 0 || (_marks$find = marks.find(function (m) {
|
|
74
81
|
return m.type.name === 'fragment';
|
|
@@ -113,15 +120,16 @@ export default function ExtensionRenderer(props) {
|
|
|
113
120
|
/** We keep rendering the default content */
|
|
114
121
|
}
|
|
115
122
|
return children({
|
|
123
|
+
isExtensionProviderPending: isExtensionProviderPending,
|
|
116
124
|
node: node,
|
|
117
125
|
result: result
|
|
118
126
|
});
|
|
119
127
|
}, [actions, children, content, extensionHandlers, extensionKey, extensionType, localGetNodeRenderer, localId, marks, parameters, rendererContext === null || rendererContext === void 0 ? void 0 : rendererContext.adDoc, text, type]);
|
|
120
128
|
var setupAndRenderExtensionNode = React.useCallback(function (providers) {
|
|
121
|
-
if (
|
|
129
|
+
if (extensionProvider === null && providers.extensionProvider) {
|
|
122
130
|
handleProvider('extensionProvider', providers.extensionProvider);
|
|
123
131
|
}
|
|
124
|
-
return renderExtensionNode(extensionProvider);
|
|
132
|
+
return renderExtensionNode(extensionProvider, Boolean(providers.extensionProvider) && extensionProvider === null);
|
|
125
133
|
}, [extensionProvider, handleProvider, renderExtensionNode]);
|
|
126
134
|
React.useEffect(function () {
|
|
127
135
|
isMounted.current = true;
|
|
@@ -63,7 +63,7 @@ export var DEGRADED_SEVERITY_THRESHOLD = 3000;
|
|
|
63
63
|
var TABLE_INFO_TIMEOUT = 10000;
|
|
64
64
|
var RENDER_EVENT_SAMPLE_RATE = 0.1;
|
|
65
65
|
var packageName = "@atlaskit/renderer";
|
|
66
|
-
var packageVersion = "133.11.
|
|
66
|
+
var packageVersion = "133.11.3";
|
|
67
67
|
var setAsQueryContainerStyles = css({
|
|
68
68
|
containerName: 'ak-renderer-wrapper',
|
|
69
69
|
containerType: 'inline-size'
|
|
@@ -228,6 +228,7 @@ export var RendererFunctionalComponent = function RendererFunctionalComponent(pr
|
|
|
228
228
|
providers: providerFactory,
|
|
229
229
|
eventHandlers: props.eventHandlers,
|
|
230
230
|
extensionHandlers: props.extensionHandlers,
|
|
231
|
+
hideExtensionKeysWhilePending: props.hideExtensionKeysWhilePending,
|
|
231
232
|
portal: props.portal,
|
|
232
233
|
objectContext: _objectSpread(_objectSpread({
|
|
233
234
|
adDoc: props.shouldRemoveEmptySpaceAroundContent ? removeEmptySpaceAroundContent(props.document) : props.document,
|
|
@@ -31,13 +31,14 @@ export interface ReactSerializerInit {
|
|
|
31
31
|
disableActions?: boolean;
|
|
32
32
|
disableHeadingIDs?: boolean;
|
|
33
33
|
disableTableOverflowShadow?: boolean;
|
|
34
|
-
headingIdPrefix?: string;
|
|
35
34
|
emojiResourceConfig?: EmojiResourceConfig;
|
|
36
35
|
eventHandlers?: EventHandlers;
|
|
37
36
|
extensionHandlers?: ExtensionHandlers;
|
|
38
37
|
extensionViewportSizes?: ExtensionViewportSize[];
|
|
39
38
|
fireAnalyticsEvent?: (event: AnalyticsEventPayload) => void;
|
|
40
39
|
getExtensionHeight?: GetPMNodeHeight;
|
|
40
|
+
headingIdPrefix?: string;
|
|
41
|
+
hideExtensionKeysWhilePending?: string[];
|
|
41
42
|
isInsideOfInlineExtension?: boolean;
|
|
42
43
|
isPresentational?: boolean;
|
|
43
44
|
media?: MediaOptions;
|
|
@@ -104,6 +105,7 @@ export default class ReactSerializer implements Serializer<JSX.Element> {
|
|
|
104
105
|
private emojiResourceConfig?;
|
|
105
106
|
private smartLinks?;
|
|
106
107
|
private extensionViewportSizes?;
|
|
108
|
+
private hideExtensionKeysWhilePending?;
|
|
107
109
|
private getExtensionHeight?;
|
|
108
110
|
private allowAnnotations;
|
|
109
111
|
private allowSelectAllTrap?;
|
|
@@ -16,6 +16,13 @@ interface Props {
|
|
|
16
16
|
extensionKey: string;
|
|
17
17
|
extensionType: string;
|
|
18
18
|
extensionViewportSizes?: ExtensionViewportSize[];
|
|
19
|
+
/**
|
|
20
|
+
* Extension keys that should render nothing (instead of the default placeholder
|
|
21
|
+
* text) while their extension provider promise is still pending. This lets the
|
|
22
|
+
* product opt specific extensions out of showing default content before their
|
|
23
|
+
* handler has resolved. When omitted, behaviour is unchanged.
|
|
24
|
+
*/
|
|
25
|
+
hideExtensionKeysWhilePending?: string[];
|
|
19
26
|
isInsideOfInlineExtension?: boolean;
|
|
20
27
|
layout?: ExtensionLayout;
|
|
21
28
|
localId?: string;
|
|
@@ -32,6 +32,7 @@ export interface NodeMeta {
|
|
|
32
32
|
eventHandlers?: EventHandlers | undefined;
|
|
33
33
|
extensionHandlers?: ExtensionHandlers | undefined;
|
|
34
34
|
fireAnalyticsEvent?: (event: AnalyticsEventPayload) => void;
|
|
35
|
+
hideExtensionKeysWhilePending?: string[];
|
|
35
36
|
marks: PMNode['marks'];
|
|
36
37
|
nodeType: NodeType['name'];
|
|
37
38
|
portal?: HTMLElement | undefined;
|
|
@@ -11,7 +11,8 @@ import type { ProviderFactory } from '@atlaskit/editor-common/provider-factory';
|
|
|
11
11
|
import type { Mark as PMMark } from '@atlaskit/editor-prosemirror/model';
|
|
12
12
|
interface Props {
|
|
13
13
|
actions?: MultiBodiedExtensionActions;
|
|
14
|
-
children: ({ node, result, }: {
|
|
14
|
+
children: ({ isExtensionProviderPending, node, result, }: {
|
|
15
|
+
isExtensionProviderPending: boolean;
|
|
15
16
|
node: ExtensionParams<Parameters>;
|
|
16
17
|
result?: JSX.Element | null;
|
|
17
18
|
}) => JSX.Element;
|
|
@@ -76,11 +76,6 @@ export interface RendererProps {
|
|
|
76
76
|
* of tables.
|
|
77
77
|
*/
|
|
78
78
|
disableTableOverflowShadow?: boolean;
|
|
79
|
-
/**
|
|
80
|
-
* Optional prefix to prepend to all generated heading IDs.
|
|
81
|
-
* Used by nested renderers to namespace heading IDs and avoid collisions with the host page.
|
|
82
|
-
*/
|
|
83
|
-
headingIdPrefix?: string;
|
|
84
79
|
document: DocNode;
|
|
85
80
|
emojiResourceConfig?: EmojiResourceConfig;
|
|
86
81
|
enableSsrInlineScripts?: boolean;
|
|
@@ -120,6 +115,20 @@ export interface RendererProps {
|
|
|
120
115
|
[featureFlag: string]: boolean;
|
|
121
116
|
} | Partial<RawObjectFeatureFlags>;
|
|
122
117
|
getExtensionHeight?: GetPMNodeHeight;
|
|
118
|
+
/**
|
|
119
|
+
* Optional prefix to prepend to all generated heading IDs.
|
|
120
|
+
* Used by nested renderers to namespace heading IDs and avoid collisions with the host page.
|
|
121
|
+
*/
|
|
122
|
+
headingIdPrefix?: string;
|
|
123
|
+
/**
|
|
124
|
+
* @default undefined
|
|
125
|
+
* @description
|
|
126
|
+
* Extension keys whose default placeholder content should be hidden (render
|
|
127
|
+
* nothing) while their extension provider promise is still pending. Products
|
|
128
|
+
* opt specific extensions in by passing their keys; when omitted, behaviour is
|
|
129
|
+
* unchanged.
|
|
130
|
+
*/
|
|
131
|
+
hideExtensionKeysWhilePending?: string[];
|
|
123
132
|
includeNodesCountInStats?: boolean;
|
|
124
133
|
innerRef?: React.RefObject<HTMLDivElement>;
|
|
125
134
|
isInsideOfInlineExtension?: boolean;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/renderer",
|
|
3
|
-
"version": "133.11.
|
|
3
|
+
"version": "133.11.4",
|
|
4
4
|
"description": "Renderer component",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -63,14 +63,14 @@
|
|
|
63
63
|
"@atlaskit/pragmatic-drag-and-drop": "^2.0.0",
|
|
64
64
|
"@atlaskit/react-compiler-gating": "^0.2.0",
|
|
65
65
|
"@atlaskit/react-ufo": "^7.3.0",
|
|
66
|
-
"@atlaskit/smart-card": "^45.
|
|
66
|
+
"@atlaskit/smart-card": "^45.10.0",
|
|
67
67
|
"@atlaskit/status": "^5.4.0",
|
|
68
68
|
"@atlaskit/task-decision": "^21.4.0",
|
|
69
69
|
"@atlaskit/theme": "^26.1.0",
|
|
70
|
-
"@atlaskit/tmp-editor-statsig": "^
|
|
70
|
+
"@atlaskit/tmp-editor-statsig": "^127.0.0",
|
|
71
71
|
"@atlaskit/tokens": "^16.0.0",
|
|
72
72
|
"@atlaskit/tooltip": "^23.1.0",
|
|
73
|
-
"@atlaskit/visually-hidden": "^4.
|
|
73
|
+
"@atlaskit/visually-hidden": "^4.2.0",
|
|
74
74
|
"@babel/runtime": "^7.0.0",
|
|
75
75
|
"@compiled/react": "^0.20.0",
|
|
76
76
|
"@emotion/react": "^11.7.1",
|
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
"uuid": "^3.1.0"
|
|
83
83
|
},
|
|
84
84
|
"peerDependencies": {
|
|
85
|
-
"@atlaskit/editor-common": "^116.
|
|
85
|
+
"@atlaskit/editor-common": "^116.33.0",
|
|
86
86
|
"@atlaskit/link-provider": "^5.2.0",
|
|
87
87
|
"@atlaskit/media-core": "^38.0.0",
|
|
88
88
|
"react": "^18.2.0",
|
|
@@ -103,7 +103,7 @@
|
|
|
103
103
|
"@atlaskit/mention": "^27.7.0",
|
|
104
104
|
"@atlaskit/modal-dialog": "^16.1.0",
|
|
105
105
|
"@atlaskit/navigation-system": "^10.5.0",
|
|
106
|
-
"@atlaskit/profilecard": "^26.
|
|
106
|
+
"@atlaskit/profilecard": "^26.10.0",
|
|
107
107
|
"@atlaskit/side-nav-items": "^2.2.0",
|
|
108
108
|
"@atlaskit/util-data-test": "^19.1.0",
|
|
109
109
|
"@atlassian/a11y-jest-testing": "^0.13.0",
|