@atlaskit/renderer 136.2.1 → 136.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# @atlaskit/renderer
|
|
2
2
|
|
|
3
|
+
## 136.2.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`e2be8a7b1a21b`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/e2be8a7b1a21b) -
|
|
8
|
+
Under experiment `platform_editor_adf_validator_perf`, `validationOverrides` (including the
|
|
9
|
+
`allowTableInPanel` override) is built in a single `useMemo` instead of a fresh object literal per
|
|
10
|
+
render. The unstable reference made `renderDocument`'s validation memo miss, re-validating an
|
|
11
|
+
unchanged document on every render. Added a test asserting the reference stays stable across
|
|
12
|
+
re-renders.
|
|
13
|
+
|
|
14
|
+
`RendererFunctionalComponent` now takes an `allowNestedTables` boolean in place of the
|
|
15
|
+
`validationOverrides` object prop, and derives the overrides itself.
|
|
16
|
+
|
|
17
|
+
- Updated dependencies
|
|
18
|
+
|
|
3
19
|
## 136.2.1
|
|
4
20
|
|
|
5
21
|
### Patch Changes
|
|
@@ -24,6 +24,7 @@ var _measureRender = require("@atlaskit/editor-common/performance/measure-render
|
|
|
24
24
|
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
|
+
var _isExperimentEnabled = require("@atlaskit/platform-feature-experiments/is-experiment-enabled");
|
|
27
28
|
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
28
29
|
var _types = require("@atlaskit/analytics-listeners/types");
|
|
29
30
|
var _analyticsNamespacedContext = require("@atlaskit/analytics-namespaced-context");
|
|
@@ -73,7 +74,7 @@ var DEGRADED_SEVERITY_THRESHOLD = exports.DEGRADED_SEVERITY_THRESHOLD = 3000;
|
|
|
73
74
|
var TABLE_INFO_TIMEOUT = 10000;
|
|
74
75
|
var RENDER_EVENT_SAMPLE_RATE = 0.1;
|
|
75
76
|
var packageName = "@atlaskit/renderer";
|
|
76
|
-
var packageVersion = "136.2.
|
|
77
|
+
var packageVersion = "136.2.1";
|
|
77
78
|
var setAsQueryContainerStyles = (0, _react2.css)({
|
|
78
79
|
containerName: 'ak-renderer-wrapper',
|
|
79
80
|
containerType: 'inline-size'
|
|
@@ -473,13 +474,24 @@ var RendererFunctionalComponent = exports.RendererFunctionalComponent = function
|
|
|
473
474
|
}, [props.featureFlags, props.isTopLevelRenderer, createRendererContext, props.timeZone]);
|
|
474
475
|
var isCollapsibleHeadingsEnabled = props.allowCollapsibleHeadings === true && ['full-page', 'full-width', 'max'].includes(props.appearance || '') && rendererContext.isTopLevelRenderer && (0, _expValEquals.expValEquals)('platform_renderer_collapsible_headings', 'isEnabled', true);
|
|
475
476
|
(0, _useScrollToBlock.useScrollToBlock)(editorRef, props.document, props.scrollToBlock);
|
|
477
|
+
var allowNestedTables = props.allowNestedTables;
|
|
478
|
+
var stableValidationOverrides = (0, _react.useMemo)(function () {
|
|
479
|
+
var schema = getSchema(props.schema, props.adfStage);
|
|
480
|
+
return (0, _nesting.isPanelNestingTableSupported)(schema) ? {
|
|
481
|
+
allowNestedTables: allowNestedTables,
|
|
482
|
+
allowTableInPanel: true
|
|
483
|
+
} : {
|
|
484
|
+
allowNestedTables: allowNestedTables
|
|
485
|
+
};
|
|
486
|
+
}, [allowNestedTables, getSchema, props.schema, props.adfStage]);
|
|
487
|
+
|
|
488
|
+
// Gate read only on the table-in-panel path, the one that used to build a new object every
|
|
489
|
+
// render; elsewhere both arms are already identical. Control keeps the copy-per-render
|
|
490
|
+
// behaviour, which is what makes `renderDocument`'s validation memo miss.
|
|
491
|
+
var validationOverrides = stableValidationOverrides.allowTableInPanel && !(0, _isExperimentEnabled.isExperimentEnabled)('platform_editor_adf_validator_perf') ? _objectSpread({}, stableValidationOverrides) : stableValidationOverrides;
|
|
476
492
|
try {
|
|
477
493
|
var _rendererContext$feat, _props$media;
|
|
478
494
|
var schema = getSchema(props.schema, props.adfStage);
|
|
479
|
-
var allowTableInPanel = (0, _nesting.isPanelNestingTableSupported)(schema);
|
|
480
|
-
var validationOverrides = allowTableInPanel ? _objectSpread(_objectSpread({}, props.validationOverrides), {}, {
|
|
481
|
-
allowTableInPanel: true
|
|
482
|
-
}) : props.validationOverrides;
|
|
483
495
|
var _renderDocument = (0, _.renderDocument)(props.shouldRemoveEmptySpaceAroundContent ? (0, _rendererHelper.removeEmptySpaceAroundContent)(props.document) : props.document, serializer, schema, props.adfStage, props.useSpecBasedValidator, id, _fireAnalyticsEvent, props.unsupportedContentLevelsTracking, props.appearance, props.includeNodesCountInStats, props.skipValidation, validationOverrides),
|
|
484
496
|
result = _renderDocument.result,
|
|
485
497
|
stat = _renderDocument.stat,
|
|
@@ -595,11 +607,6 @@ function Renderer(props) {
|
|
|
595
607
|
var _ref = (0, _react.useContext)(_ValidationContext.ValidationContext) || {},
|
|
596
608
|
skipValidation = _ref.skipValidation,
|
|
597
609
|
allowNestedTables = _ref.allowNestedTables;
|
|
598
|
-
var validationOverrides = (0, _react.useMemo)(function () {
|
|
599
|
-
return {
|
|
600
|
-
allowNestedTables: allowNestedTables
|
|
601
|
-
};
|
|
602
|
-
}, [allowNestedTables]);
|
|
603
610
|
return (0, _react2.jsx)(RendererFunctionalComponentWithPortalContext
|
|
604
611
|
// Ignored via go/ees005
|
|
605
612
|
// eslint-disable-next-line react/jsx-props-no-spreading
|
|
@@ -607,7 +614,7 @@ function Renderer(props) {
|
|
|
607
614
|
startPos: startPos,
|
|
608
615
|
isTopLevelRenderer: (_props$isTopLevelRend = props.isTopLevelRenderer) !== null && _props$isTopLevelRend !== void 0 ? _props$isTopLevelRend : isTopLevelRenderer,
|
|
609
616
|
skipValidation: skipValidation,
|
|
610
|
-
|
|
617
|
+
allowNestedTables: allowNestedTables
|
|
611
618
|
}));
|
|
612
619
|
}
|
|
613
620
|
|
|
@@ -18,6 +18,7 @@ import { getDistortedDurationMonitor } from '@atlaskit/editor-common/performance
|
|
|
18
18
|
import { getResponseEndTime } from '@atlaskit/editor-common/performance/navigation';
|
|
19
19
|
import { useScrollToBlock } from '../hooks/useScrollToBlock';
|
|
20
20
|
import { getAnalyticsAppearance, getAnalyticsEventSeverity, shouldForceTracking } from '@atlaskit/editor-common/utils';
|
|
21
|
+
import { isExperimentEnabled } from '@atlaskit/platform-feature-experiments/is-experiment-enabled';
|
|
21
22
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
22
23
|
import { FabricChannel } from '@atlaskit/analytics-listeners/types';
|
|
23
24
|
import { FabricEditorAnalyticsContext } from '@atlaskit/analytics-namespaced-context';
|
|
@@ -59,7 +60,7 @@ export const DEGRADED_SEVERITY_THRESHOLD = 3000;
|
|
|
59
60
|
const TABLE_INFO_TIMEOUT = 10000;
|
|
60
61
|
const RENDER_EVENT_SAMPLE_RATE = 0.1;
|
|
61
62
|
const packageName = "@atlaskit/renderer";
|
|
62
|
-
const packageVersion = "136.2.
|
|
63
|
+
const packageVersion = "136.2.1";
|
|
63
64
|
const setAsQueryContainerStyles = css({
|
|
64
65
|
containerName: 'ak-renderer-wrapper',
|
|
65
66
|
containerType: 'inline-size'
|
|
@@ -462,14 +463,28 @@ export const RendererFunctionalComponent = props => {
|
|
|
462
463
|
}), [props.featureFlags, props.isTopLevelRenderer, createRendererContext, props.timeZone]);
|
|
463
464
|
const isCollapsibleHeadingsEnabled = props.allowCollapsibleHeadings === true && ['full-page', 'full-width', 'max'].includes(props.appearance || '') && rendererContext.isTopLevelRenderer && expValEquals('platform_renderer_collapsible_headings', 'isEnabled', true);
|
|
464
465
|
useScrollToBlock(editorRef, props.document, props.scrollToBlock);
|
|
466
|
+
const {
|
|
467
|
+
allowNestedTables
|
|
468
|
+
} = props;
|
|
469
|
+
const stableValidationOverrides = useMemo(() => {
|
|
470
|
+
const schema = getSchema(props.schema, props.adfStage);
|
|
471
|
+
return isPanelNestingTableSupported(schema) ? {
|
|
472
|
+
allowNestedTables,
|
|
473
|
+
allowTableInPanel: true
|
|
474
|
+
} : {
|
|
475
|
+
allowNestedTables
|
|
476
|
+
};
|
|
477
|
+
}, [allowNestedTables, getSchema, props.schema, props.adfStage]);
|
|
478
|
+
|
|
479
|
+
// Gate read only on the table-in-panel path, the one that used to build a new object every
|
|
480
|
+
// render; elsewhere both arms are already identical. Control keeps the copy-per-render
|
|
481
|
+
// behaviour, which is what makes `renderDocument`'s validation memo miss.
|
|
482
|
+
const validationOverrides = stableValidationOverrides.allowTableInPanel && !isExperimentEnabled('platform_editor_adf_validator_perf') ? {
|
|
483
|
+
...stableValidationOverrides
|
|
484
|
+
} : stableValidationOverrides;
|
|
465
485
|
try {
|
|
466
486
|
var _rendererContext$feat, _props$media;
|
|
467
487
|
const schema = getSchema(props.schema, props.adfStage);
|
|
468
|
-
const allowTableInPanel = isPanelNestingTableSupported(schema);
|
|
469
|
-
const validationOverrides = allowTableInPanel ? {
|
|
470
|
-
...props.validationOverrides,
|
|
471
|
-
allowTableInPanel: true
|
|
472
|
-
} : props.validationOverrides;
|
|
473
488
|
const {
|
|
474
489
|
result,
|
|
475
490
|
stat,
|
|
@@ -585,9 +600,6 @@ export function Renderer(props) {
|
|
|
585
600
|
skipValidation,
|
|
586
601
|
allowNestedTables
|
|
587
602
|
} = useContext(ValidationContext) || {};
|
|
588
|
-
const validationOverrides = useMemo(() => ({
|
|
589
|
-
allowNestedTables
|
|
590
|
-
}), [allowNestedTables]);
|
|
591
603
|
return jsx(RendererFunctionalComponentWithPortalContext
|
|
592
604
|
// Ignored via go/ees005
|
|
593
605
|
// eslint-disable-next-line react/jsx-props-no-spreading
|
|
@@ -595,7 +607,7 @@ export function Renderer(props) {
|
|
|
595
607
|
startPos: startPos,
|
|
596
608
|
isTopLevelRenderer: (_props$isTopLevelRend = props.isTopLevelRenderer) !== null && _props$isTopLevelRend !== void 0 ? _props$isTopLevelRend : isTopLevelRenderer,
|
|
597
609
|
skipValidation: skipValidation,
|
|
598
|
-
|
|
610
|
+
allowNestedTables: allowNestedTables
|
|
599
611
|
}));
|
|
600
612
|
}
|
|
601
613
|
|
|
@@ -23,6 +23,7 @@ import { getDistortedDurationMonitor } from '@atlaskit/editor-common/performance
|
|
|
23
23
|
import { getResponseEndTime } from '@atlaskit/editor-common/performance/navigation';
|
|
24
24
|
import { useScrollToBlock } from '../hooks/useScrollToBlock';
|
|
25
25
|
import { getAnalyticsAppearance, getAnalyticsEventSeverity, shouldForceTracking } from '@atlaskit/editor-common/utils';
|
|
26
|
+
import { isExperimentEnabled } from '@atlaskit/platform-feature-experiments/is-experiment-enabled';
|
|
26
27
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
27
28
|
import { FabricChannel } from '@atlaskit/analytics-listeners/types';
|
|
28
29
|
import { FabricEditorAnalyticsContext } from '@atlaskit/analytics-namespaced-context';
|
|
@@ -64,7 +65,7 @@ export var DEGRADED_SEVERITY_THRESHOLD = 3000;
|
|
|
64
65
|
var TABLE_INFO_TIMEOUT = 10000;
|
|
65
66
|
var RENDER_EVENT_SAMPLE_RATE = 0.1;
|
|
66
67
|
var packageName = "@atlaskit/renderer";
|
|
67
|
-
var packageVersion = "136.2.
|
|
68
|
+
var packageVersion = "136.2.1";
|
|
68
69
|
var setAsQueryContainerStyles = css({
|
|
69
70
|
containerName: 'ak-renderer-wrapper',
|
|
70
71
|
containerType: 'inline-size'
|
|
@@ -464,13 +465,24 @@ export var RendererFunctionalComponent = function RendererFunctionalComponent(pr
|
|
|
464
465
|
}, [props.featureFlags, props.isTopLevelRenderer, createRendererContext, props.timeZone]);
|
|
465
466
|
var isCollapsibleHeadingsEnabled = props.allowCollapsibleHeadings === true && ['full-page', 'full-width', 'max'].includes(props.appearance || '') && rendererContext.isTopLevelRenderer && expValEquals('platform_renderer_collapsible_headings', 'isEnabled', true);
|
|
466
467
|
useScrollToBlock(editorRef, props.document, props.scrollToBlock);
|
|
468
|
+
var allowNestedTables = props.allowNestedTables;
|
|
469
|
+
var stableValidationOverrides = useMemo(function () {
|
|
470
|
+
var schema = getSchema(props.schema, props.adfStage);
|
|
471
|
+
return isPanelNestingTableSupported(schema) ? {
|
|
472
|
+
allowNestedTables: allowNestedTables,
|
|
473
|
+
allowTableInPanel: true
|
|
474
|
+
} : {
|
|
475
|
+
allowNestedTables: allowNestedTables
|
|
476
|
+
};
|
|
477
|
+
}, [allowNestedTables, getSchema, props.schema, props.adfStage]);
|
|
478
|
+
|
|
479
|
+
// Gate read only on the table-in-panel path, the one that used to build a new object every
|
|
480
|
+
// render; elsewhere both arms are already identical. Control keeps the copy-per-render
|
|
481
|
+
// behaviour, which is what makes `renderDocument`'s validation memo miss.
|
|
482
|
+
var validationOverrides = stableValidationOverrides.allowTableInPanel && !isExperimentEnabled('platform_editor_adf_validator_perf') ? _objectSpread({}, stableValidationOverrides) : stableValidationOverrides;
|
|
467
483
|
try {
|
|
468
484
|
var _rendererContext$feat, _props$media;
|
|
469
485
|
var schema = getSchema(props.schema, props.adfStage);
|
|
470
|
-
var allowTableInPanel = isPanelNestingTableSupported(schema);
|
|
471
|
-
var validationOverrides = allowTableInPanel ? _objectSpread(_objectSpread({}, props.validationOverrides), {}, {
|
|
472
|
-
allowTableInPanel: true
|
|
473
|
-
}) : props.validationOverrides;
|
|
474
486
|
var _renderDocument = 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),
|
|
475
487
|
result = _renderDocument.result,
|
|
476
488
|
stat = _renderDocument.stat,
|
|
@@ -586,11 +598,6 @@ export function Renderer(props) {
|
|
|
586
598
|
var _ref = useContext(ValidationContext) || {},
|
|
587
599
|
skipValidation = _ref.skipValidation,
|
|
588
600
|
allowNestedTables = _ref.allowNestedTables;
|
|
589
|
-
var validationOverrides = useMemo(function () {
|
|
590
|
-
return {
|
|
591
|
-
allowNestedTables: allowNestedTables
|
|
592
|
-
};
|
|
593
|
-
}, [allowNestedTables]);
|
|
594
601
|
return jsx(RendererFunctionalComponentWithPortalContext
|
|
595
602
|
// Ignored via go/ees005
|
|
596
603
|
// eslint-disable-next-line react/jsx-props-no-spreading
|
|
@@ -598,7 +605,7 @@ export function Renderer(props) {
|
|
|
598
605
|
startPos: startPos,
|
|
599
606
|
isTopLevelRenderer: (_props$isTopLevelRend = props.isTopLevelRenderer) !== null && _props$isTopLevelRend !== void 0 ? _props$isTopLevelRend : isTopLevelRenderer,
|
|
600
607
|
skipValidation: skipValidation,
|
|
601
|
-
|
|
608
|
+
allowNestedTables: allowNestedTables
|
|
602
609
|
}));
|
|
603
610
|
}
|
|
604
611
|
|
|
@@ -10,11 +10,9 @@ import type { RendererAppearance, RendererContentMode } from './types';
|
|
|
10
10
|
export declare const NORMAL_SEVERITY_THRESHOLD = 2000;
|
|
11
11
|
export declare const DEGRADED_SEVERITY_THRESHOLD = 3000;
|
|
12
12
|
export declare const RendererFunctionalComponent: (props: RendererProps & {
|
|
13
|
+
allowNestedTables?: boolean;
|
|
13
14
|
skipValidation?: boolean;
|
|
14
15
|
startPos?: number;
|
|
15
|
-
validationOverrides?: {
|
|
16
|
-
allowNestedTables?: boolean;
|
|
17
|
-
};
|
|
18
16
|
}) => jsx.JSX.Element;
|
|
19
17
|
/**
|
|
20
18
|
* Top-level ADF renderer: renders document content with analytics and validation context.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/renderer",
|
|
3
|
-
"version": "136.2.
|
|
3
|
+
"version": "136.2.2",
|
|
4
4
|
"description": "Renderer component",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
"uuid": "^3.1.0"
|
|
86
86
|
},
|
|
87
87
|
"peerDependencies": {
|
|
88
|
-
"@atlaskit/editor-common": "^119.
|
|
88
|
+
"@atlaskit/editor-common": "^119.15.0",
|
|
89
89
|
"@atlaskit/link-provider": "^5.4.0",
|
|
90
90
|
"@atlaskit/media-core": "^38.0.0",
|
|
91
91
|
"react": "^18.2.0",
|