@atlaskit/renderer 137.4.6 → 138.0.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 +22 -0
- package/dist/cjs/react/nodes/inlineCard.js +2 -2
- package/dist/cjs/ui/Renderer/index.js +24 -8
- package/dist/es2019/react/nodes/inlineCard.js +2 -2
- package/dist/es2019/ui/Renderer/index.js +26 -8
- package/dist/esm/react/nodes/inlineCard.js +2 -2
- package/dist/esm/ui/Renderer/index.js +24 -8
- package/package.json +5 -8
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,27 @@
|
|
|
1
1
|
# @atlaskit/renderer
|
|
2
2
|
|
|
3
|
+
## 138.0.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`8d65b130dff43`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/8d65b130dff43) -
|
|
8
|
+
Behind the `platform_renderer_on_complete_after_commit` experiment, `onComplete` is invoked from
|
|
9
|
+
an effect after the rendered document is committed instead of synchronously during render. Calling
|
|
10
|
+
it during render let consumers set state on other components mid-render, which React forbids and
|
|
11
|
+
which could feed a render loop on pages that never reached commit. With the experiment off the
|
|
12
|
+
callback fires exactly as before.
|
|
13
|
+
- Updated dependencies
|
|
14
|
+
|
|
15
|
+
## 138.0.0
|
|
16
|
+
|
|
17
|
+
### Patch Changes
|
|
18
|
+
|
|
19
|
+
- [`3422261e7a40e`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/3422261e7a40e) -
|
|
20
|
+
Clean up experiment `platform_editor_smartlink_local_cache`.
|
|
21
|
+
- [`7c7646bee3e68`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/7c7646bee3e68) -
|
|
22
|
+
Clean up feature gate `platform_editor_table_height_analytics_event`
|
|
23
|
+
- Updated dependencies
|
|
24
|
+
|
|
3
25
|
## 137.4.6
|
|
4
26
|
|
|
5
27
|
### Patch Changes
|
|
@@ -202,7 +202,7 @@ var InlineCard = function InlineCard(props) {
|
|
|
202
202
|
}
|
|
203
203
|
};
|
|
204
204
|
(0, _react.useEffect)(function () {
|
|
205
|
-
if (
|
|
205
|
+
if (url) {
|
|
206
206
|
// Refresh cache in the background
|
|
207
207
|
provider === null || provider === void 0 || provider.then(function (providerInstance) {
|
|
208
208
|
var _refreshCache, _ref5;
|
|
@@ -217,7 +217,7 @@ var InlineCard = function InlineCard(props) {
|
|
|
217
217
|
}
|
|
218
218
|
}, [provider, url]);
|
|
219
219
|
var MaybeOverlay = cardContext !== null && cardContext !== void 0 && cardContext.value ? OverlayWithCardContext : HoverLinkOverlayNoop;
|
|
220
|
-
if ((ssr || cardState
|
|
220
|
+
if ((ssr || cardState) && url) {
|
|
221
221
|
if (
|
|
222
222
|
// eslint-disable-next-line @atlaskit/platform/no-invalid-feature-flag-usage
|
|
223
223
|
(0, _fg.fg)('editor_inline_comments_on_inline_nodes')) {
|
|
@@ -25,7 +25,6 @@ var _navigation = require("@atlaskit/editor-common/performance/navigation");
|
|
|
25
25
|
var _useScrollToBlock = require("../hooks/useScrollToBlock");
|
|
26
26
|
var _utils = require("@atlaskit/editor-common/utils");
|
|
27
27
|
var _isExperimentEnabled = require("@atlaskit/platform-feature-experiments/is-experiment-enabled");
|
|
28
|
-
var _fg = require("@atlaskit/platform-feature-flags/fg");
|
|
29
28
|
var _types = require("@atlaskit/analytics-listeners/types");
|
|
30
29
|
var _FabricEditorAnalyticsContext = require("@atlaskit/analytics-namespaced-context/FabricEditorAnalyticsContext");
|
|
31
30
|
var _analytics = require("@atlaskit/editor-common/analytics");
|
|
@@ -74,7 +73,7 @@ var DEGRADED_SEVERITY_THRESHOLD = exports.DEGRADED_SEVERITY_THRESHOLD = 3000;
|
|
|
74
73
|
var TABLE_INFO_TIMEOUT = 10000;
|
|
75
74
|
var RENDER_EVENT_SAMPLE_RATE = 0.1;
|
|
76
75
|
var packageName = "@atlaskit/renderer";
|
|
77
|
-
var packageVersion = "
|
|
76
|
+
var packageVersion = "138.0.0";
|
|
78
77
|
var setAsQueryContainerStyles = (0, _react2.css)({
|
|
79
78
|
containerName: 'ak-renderer-wrapper',
|
|
80
79
|
containerType: 'inline-size'
|
|
@@ -425,11 +424,9 @@ var RendererFunctionalComponent = exports.RendererFunctionalComponent = function
|
|
|
425
424
|
if (payload) {
|
|
426
425
|
_fireAnalyticsEvent(payload);
|
|
427
426
|
}
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
_fireAnalyticsEvent(payloadHeight);
|
|
432
|
-
}
|
|
427
|
+
var payloadHeight = (0, _analyticsUtils.getHeightInfoPayload)(renderer);
|
|
428
|
+
if (payloadHeight) {
|
|
429
|
+
_fireAnalyticsEvent(payloadHeight);
|
|
433
430
|
}
|
|
434
431
|
}
|
|
435
432
|
};
|
|
@@ -489,6 +486,21 @@ var RendererFunctionalComponent = exports.RendererFunctionalComponent = function
|
|
|
489
486
|
// render; elsewhere both arms are already identical. Control keeps the copy-per-render
|
|
490
487
|
// behaviour, which is what makes `renderDocument`'s validation memo miss.
|
|
491
488
|
var validationOverrides = stableValidationOverrides.allowTableInPanel && !(0, _isExperimentEnabled.isExperimentEnabled)('platform_editor_adf_validator_perf') ? _objectSpread({}, stableValidationOverrides) : stableValidationOverrides;
|
|
489
|
+
|
|
490
|
+
// Invoking `onComplete` during render lets consumers set state on other components mid-render,
|
|
491
|
+
// so the stat is parked here and delivered once the rendered document has been committed.
|
|
492
|
+
// No dependency array: `renderDocument` produces a new stat on every render, so the callback
|
|
493
|
+
// must run after every commit to keep its historical once-per-render cadence.
|
|
494
|
+
var pendingOnCompleteStatRef = (0, _react.useRef)(null);
|
|
495
|
+
var onComplete = props.onComplete;
|
|
496
|
+
(0, _react.useEffect)(function () {
|
|
497
|
+
var stat = pendingOnCompleteStatRef.current;
|
|
498
|
+
if (stat === null || !onComplete) {
|
|
499
|
+
return;
|
|
500
|
+
}
|
|
501
|
+
pendingOnCompleteStatRef.current = null;
|
|
502
|
+
onComplete(stat);
|
|
503
|
+
});
|
|
492
504
|
try {
|
|
493
505
|
var _rendererContext$feat, _props$media;
|
|
494
506
|
var schema = getSchema(props.schema, props.adfStage);
|
|
@@ -497,7 +509,11 @@ var RendererFunctionalComponent = exports.RendererFunctionalComponent = function
|
|
|
497
509
|
stat = _renderDocument.stat,
|
|
498
510
|
pmDoc = _renderDocument.pmDoc;
|
|
499
511
|
if (props.onComplete) {
|
|
500
|
-
|
|
512
|
+
if ((0, _isExperimentEnabled.isExperimentEnabled)('platform_renderer_on_complete_after_commit')) {
|
|
513
|
+
pendingOnCompleteStatRef.current = stat;
|
|
514
|
+
} else {
|
|
515
|
+
props.onComplete(stat);
|
|
516
|
+
}
|
|
501
517
|
}
|
|
502
518
|
var rendererOutput = (0, _react2.jsx)(_rendererContext.RendererContextProvider, {
|
|
503
519
|
value: rendererContext
|
|
@@ -189,7 +189,7 @@ const InlineCard = props => {
|
|
|
189
189
|
}
|
|
190
190
|
};
|
|
191
191
|
useEffect(() => {
|
|
192
|
-
if (
|
|
192
|
+
if (url) {
|
|
193
193
|
// Refresh cache in the background
|
|
194
194
|
provider === null || provider === void 0 ? void 0 : provider.then(providerInstance => {
|
|
195
195
|
var _refreshCache, _ref;
|
|
@@ -204,7 +204,7 @@ const InlineCard = props => {
|
|
|
204
204
|
}
|
|
205
205
|
}, [provider, url]);
|
|
206
206
|
const MaybeOverlay = cardContext !== null && cardContext !== void 0 && cardContext.value ? OverlayWithCardContext : HoverLinkOverlayNoop;
|
|
207
|
-
if ((ssr || cardState
|
|
207
|
+
if ((ssr || cardState) && url) {
|
|
208
208
|
if (
|
|
209
209
|
// eslint-disable-next-line @atlaskit/platform/no-invalid-feature-flag-usage
|
|
210
210
|
fg('editor_inline_comments_on_inline_nodes')) {
|
|
@@ -19,7 +19,6 @@ import { getResponseEndTime } from '@atlaskit/editor-common/performance/navigati
|
|
|
19
19
|
import { useScrollToBlock } from '../hooks/useScrollToBlock';
|
|
20
20
|
import { getAnalyticsAppearance, getAnalyticsEventSeverity, shouldForceTracking } from '@atlaskit/editor-common/utils';
|
|
21
21
|
import { isExperimentEnabled } from '@atlaskit/platform-feature-experiments/is-experiment-enabled';
|
|
22
|
-
import { fg } from '@atlaskit/platform-feature-flags/fg';
|
|
23
22
|
import { FabricChannel } from '@atlaskit/analytics-listeners/types';
|
|
24
23
|
import { FabricEditorAnalyticsContext } from '@atlaskit/analytics-namespaced-context/FabricEditorAnalyticsContext';
|
|
25
24
|
import { ACTION, ACTION_SUBJECT, EVENT_TYPE } from '@atlaskit/editor-common/analytics';
|
|
@@ -60,7 +59,7 @@ export const DEGRADED_SEVERITY_THRESHOLD = 3000;
|
|
|
60
59
|
const TABLE_INFO_TIMEOUT = 10000;
|
|
61
60
|
const RENDER_EVENT_SAMPLE_RATE = 0.1;
|
|
62
61
|
const packageName = "@atlaskit/renderer";
|
|
63
|
-
const packageVersion = "
|
|
62
|
+
const packageVersion = "138.0.0";
|
|
64
63
|
const setAsQueryContainerStyles = css({
|
|
65
64
|
containerName: 'ak-renderer-wrapper',
|
|
66
65
|
containerType: 'inline-size'
|
|
@@ -415,11 +414,9 @@ export const RendererFunctionalComponent = props => {
|
|
|
415
414
|
if (payload) {
|
|
416
415
|
fireAnalyticsEvent(payload);
|
|
417
416
|
}
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
fireAnalyticsEvent(payloadHeight);
|
|
422
|
-
}
|
|
417
|
+
const payloadHeight = getHeightInfoPayload(renderer);
|
|
418
|
+
if (payloadHeight) {
|
|
419
|
+
fireAnalyticsEvent(payloadHeight);
|
|
423
420
|
}
|
|
424
421
|
}
|
|
425
422
|
};
|
|
@@ -482,6 +479,23 @@ export const RendererFunctionalComponent = props => {
|
|
|
482
479
|
const validationOverrides = stableValidationOverrides.allowTableInPanel && !isExperimentEnabled('platform_editor_adf_validator_perf') ? {
|
|
483
480
|
...stableValidationOverrides
|
|
484
481
|
} : stableValidationOverrides;
|
|
482
|
+
|
|
483
|
+
// Invoking `onComplete` during render lets consumers set state on other components mid-render,
|
|
484
|
+
// so the stat is parked here and delivered once the rendered document has been committed.
|
|
485
|
+
// No dependency array: `renderDocument` produces a new stat on every render, so the callback
|
|
486
|
+
// must run after every commit to keep its historical once-per-render cadence.
|
|
487
|
+
const pendingOnCompleteStatRef = useRef(null);
|
|
488
|
+
const {
|
|
489
|
+
onComplete
|
|
490
|
+
} = props;
|
|
491
|
+
useEffect(() => {
|
|
492
|
+
const stat = pendingOnCompleteStatRef.current;
|
|
493
|
+
if (stat === null || !onComplete) {
|
|
494
|
+
return;
|
|
495
|
+
}
|
|
496
|
+
pendingOnCompleteStatRef.current = null;
|
|
497
|
+
onComplete(stat);
|
|
498
|
+
});
|
|
485
499
|
try {
|
|
486
500
|
var _rendererContext$feat, _props$media;
|
|
487
501
|
const schema = getSchema(props.schema, props.adfStage);
|
|
@@ -491,7 +505,11 @@ export const RendererFunctionalComponent = props => {
|
|
|
491
505
|
pmDoc
|
|
492
506
|
} = renderDocument(props.shouldRemoveEmptySpaceAroundContent ? removeEmptySpaceAroundContent(props.document) : props.document, serializer, schema, props.adfStage, props.useSpecBasedValidator, id, fireAnalyticsEvent, props.unsupportedContentLevelsTracking, props.appearance, props.includeNodesCountInStats, props.skipValidation, validationOverrides);
|
|
493
507
|
if (props.onComplete) {
|
|
494
|
-
|
|
508
|
+
if (isExperimentEnabled('platform_renderer_on_complete_after_commit')) {
|
|
509
|
+
pendingOnCompleteStatRef.current = stat;
|
|
510
|
+
} else {
|
|
511
|
+
props.onComplete(stat);
|
|
512
|
+
}
|
|
495
513
|
}
|
|
496
514
|
const rendererOutput = jsx(RendererContextProvider, {
|
|
497
515
|
value: rendererContext
|
|
@@ -193,7 +193,7 @@ var InlineCard = function InlineCard(props) {
|
|
|
193
193
|
}
|
|
194
194
|
};
|
|
195
195
|
useEffect(function () {
|
|
196
|
-
if (
|
|
196
|
+
if (url) {
|
|
197
197
|
// Refresh cache in the background
|
|
198
198
|
provider === null || provider === void 0 || provider.then(function (providerInstance) {
|
|
199
199
|
var _refreshCache, _ref5;
|
|
@@ -208,7 +208,7 @@ var InlineCard = function InlineCard(props) {
|
|
|
208
208
|
}
|
|
209
209
|
}, [provider, url]);
|
|
210
210
|
var MaybeOverlay = cardContext !== null && cardContext !== void 0 && cardContext.value ? OverlayWithCardContext : HoverLinkOverlayNoop;
|
|
211
|
-
if ((ssr || cardState
|
|
211
|
+
if ((ssr || cardState) && url) {
|
|
212
212
|
if (
|
|
213
213
|
// eslint-disable-next-line @atlaskit/platform/no-invalid-feature-flag-usage
|
|
214
214
|
fg('editor_inline_comments_on_inline_nodes')) {
|
|
@@ -24,7 +24,6 @@ import { getResponseEndTime } from '@atlaskit/editor-common/performance/navigati
|
|
|
24
24
|
import { useScrollToBlock } from '../hooks/useScrollToBlock';
|
|
25
25
|
import { getAnalyticsAppearance, getAnalyticsEventSeverity, shouldForceTracking } from '@atlaskit/editor-common/utils';
|
|
26
26
|
import { isExperimentEnabled } from '@atlaskit/platform-feature-experiments/is-experiment-enabled';
|
|
27
|
-
import { fg } from '@atlaskit/platform-feature-flags/fg';
|
|
28
27
|
import { FabricChannel } from '@atlaskit/analytics-listeners/types';
|
|
29
28
|
import { FabricEditorAnalyticsContext } from '@atlaskit/analytics-namespaced-context/FabricEditorAnalyticsContext';
|
|
30
29
|
import { ACTION, ACTION_SUBJECT, EVENT_TYPE } from '@atlaskit/editor-common/analytics';
|
|
@@ -65,7 +64,7 @@ export var DEGRADED_SEVERITY_THRESHOLD = 3000;
|
|
|
65
64
|
var TABLE_INFO_TIMEOUT = 10000;
|
|
66
65
|
var RENDER_EVENT_SAMPLE_RATE = 0.1;
|
|
67
66
|
var packageName = "@atlaskit/renderer";
|
|
68
|
-
var packageVersion = "
|
|
67
|
+
var packageVersion = "138.0.0";
|
|
69
68
|
var setAsQueryContainerStyles = css({
|
|
70
69
|
containerName: 'ak-renderer-wrapper',
|
|
71
70
|
containerType: 'inline-size'
|
|
@@ -416,11 +415,9 @@ export var RendererFunctionalComponent = function RendererFunctionalComponent(pr
|
|
|
416
415
|
if (payload) {
|
|
417
416
|
_fireAnalyticsEvent(payload);
|
|
418
417
|
}
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
_fireAnalyticsEvent(payloadHeight);
|
|
423
|
-
}
|
|
418
|
+
var payloadHeight = getHeightInfoPayload(renderer);
|
|
419
|
+
if (payloadHeight) {
|
|
420
|
+
_fireAnalyticsEvent(payloadHeight);
|
|
424
421
|
}
|
|
425
422
|
}
|
|
426
423
|
};
|
|
@@ -480,6 +477,21 @@ export var RendererFunctionalComponent = function RendererFunctionalComponent(pr
|
|
|
480
477
|
// render; elsewhere both arms are already identical. Control keeps the copy-per-render
|
|
481
478
|
// behaviour, which is what makes `renderDocument`'s validation memo miss.
|
|
482
479
|
var validationOverrides = stableValidationOverrides.allowTableInPanel && !isExperimentEnabled('platform_editor_adf_validator_perf') ? _objectSpread({}, stableValidationOverrides) : stableValidationOverrides;
|
|
480
|
+
|
|
481
|
+
// Invoking `onComplete` during render lets consumers set state on other components mid-render,
|
|
482
|
+
// so the stat is parked here and delivered once the rendered document has been committed.
|
|
483
|
+
// No dependency array: `renderDocument` produces a new stat on every render, so the callback
|
|
484
|
+
// must run after every commit to keep its historical once-per-render cadence.
|
|
485
|
+
var pendingOnCompleteStatRef = useRef(null);
|
|
486
|
+
var onComplete = props.onComplete;
|
|
487
|
+
useEffect(function () {
|
|
488
|
+
var stat = pendingOnCompleteStatRef.current;
|
|
489
|
+
if (stat === null || !onComplete) {
|
|
490
|
+
return;
|
|
491
|
+
}
|
|
492
|
+
pendingOnCompleteStatRef.current = null;
|
|
493
|
+
onComplete(stat);
|
|
494
|
+
});
|
|
483
495
|
try {
|
|
484
496
|
var _rendererContext$feat, _props$media;
|
|
485
497
|
var schema = getSchema(props.schema, props.adfStage);
|
|
@@ -488,7 +500,11 @@ export var RendererFunctionalComponent = function RendererFunctionalComponent(pr
|
|
|
488
500
|
stat = _renderDocument.stat,
|
|
489
501
|
pmDoc = _renderDocument.pmDoc;
|
|
490
502
|
if (props.onComplete) {
|
|
491
|
-
|
|
503
|
+
if (isExperimentEnabled('platform_renderer_on_complete_after_commit')) {
|
|
504
|
+
pendingOnCompleteStatRef.current = stat;
|
|
505
|
+
} else {
|
|
506
|
+
props.onComplete(stat);
|
|
507
|
+
}
|
|
492
508
|
}
|
|
493
509
|
var rendererOutput = jsx(RendererContextProvider, {
|
|
494
510
|
value: rendererContext
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/renderer",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "138.0.1",
|
|
4
4
|
"description": "Renderer component",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
}
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@atlaskit/adf-schema": "^57.
|
|
33
|
+
"@atlaskit/adf-schema": "^57.4.0",
|
|
34
34
|
"@atlaskit/adf-utils": "^20.9.0",
|
|
35
35
|
"@atlaskit/afm-i18n-platform-editor-renderer": "2.200.0",
|
|
36
36
|
"@atlaskit/analytics-listeners": "^11.3.0",
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
"@atlaskit/status": "^5.9.0",
|
|
71
71
|
"@atlaskit/task-decision": "^21.9.0",
|
|
72
72
|
"@atlaskit/theme": "^28.2.0",
|
|
73
|
-
"@atlaskit/tmp-editor-statsig": "^
|
|
73
|
+
"@atlaskit/tmp-editor-statsig": "^179.0.0",
|
|
74
74
|
"@atlaskit/tokens": "^16.11.0",
|
|
75
75
|
"@atlaskit/tooltip": "^24.3.0",
|
|
76
76
|
"@atlaskit/visually-hidden": "^4.4.0",
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
"uuid": "^11.1.1"
|
|
86
86
|
},
|
|
87
87
|
"peerDependencies": {
|
|
88
|
-
"@atlaskit/editor-common": "^
|
|
88
|
+
"@atlaskit/editor-common": "^121.1.0",
|
|
89
89
|
"@atlaskit/link-provider": "^5.5.0",
|
|
90
90
|
"@atlaskit/media-core": "^38.2.0",
|
|
91
91
|
"react": "^18.2.0",
|
|
@@ -97,7 +97,7 @@
|
|
|
97
97
|
"@af/visual-regression": "workspace:^",
|
|
98
98
|
"@atlaskit/analytics-gas-types": "^6.2.0",
|
|
99
99
|
"@atlaskit/checkbox": "^19.2.0",
|
|
100
|
-
"@atlaskit/editor-plugin-media": "^
|
|
100
|
+
"@atlaskit/editor-plugin-media": "^19.1.0",
|
|
101
101
|
"@atlaskit/editor-test-helpers": "workspace:^",
|
|
102
102
|
"@atlaskit/inline-edit": "^16.4.0",
|
|
103
103
|
"@atlaskit/json-ld-types": "^2.0.0",
|
|
@@ -212,9 +212,6 @@
|
|
|
212
212
|
"media-perf-uplift-mutation-fix": {
|
|
213
213
|
"type": "boolean"
|
|
214
214
|
},
|
|
215
|
-
"platform_editor_table_height_analytics_event": {
|
|
216
|
-
"type": "boolean"
|
|
217
|
-
},
|
|
218
215
|
"platform_fix_macro_renders_in_layouts": {
|
|
219
216
|
"type": "boolean"
|
|
220
217
|
},
|