@atlaskit/renderer 128.10.6 → 128.11.0

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,16 @@
1
1
  # @atlaskit/renderer
2
2
 
3
+ ## 128.11.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`65f1d80415ae8`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/65f1d80415ae8) -
8
+ EDITOR-679 improve reliability of media provider
9
+
10
+ ### Patch Changes
11
+
12
+ - Updated dependencies
13
+
3
14
  ## 128.10.6
4
15
 
5
16
  ### Patch Changes
@@ -10,6 +10,7 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
10
10
  var _react = _interopRequireWildcard(require("react"));
11
11
  var _mediaClientReact = require("@atlaskit/media-client-react");
12
12
  var _providerFactory = require("@atlaskit/editor-common/provider-factory");
13
+ var _expValEquals = require("@atlaskit/tmp-editor-statsig/exp-val-equals");
13
14
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
14
15
  var EditorMediaClientProvider = exports.EditorMediaClientProvider = function EditorMediaClientProvider(_ref) {
15
16
  var children = _ref.children,
@@ -18,13 +19,24 @@ var EditorMediaClientProvider = exports.EditorMediaClientProvider = function Edi
18
19
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
19
20
  mediaClientConfig = _useState2[0],
20
21
  setMediaClientConfig = _useState2[1];
22
+ var providerFactory = (0, _providerFactory.useProviderFactory)();
21
23
  var mediaProvider = (0, _providerFactory.useProviderLayout)('mediaProvider');
22
24
 
23
25
  /**
24
- * If a mediaClientConfig is provided then we will force
25
- * skip the mediaClient from context
26
+ * Whether this renderer has its own media provider and should never inherit
27
+ * the mediaClient from a parent renderer's context.
28
+ *
29
+ * We use providerFactory.hasProvider() rather and checking the mediaProvider
30
+ * state value, because useProviderLayout subscribes via useLayoutEffect —
31
+ * meaning mediaProvider state is always undefined on the first render, even
32
+ * if the ProviderFactory already has a provider registered. This would cause
33
+ * shouldSkipContext to be false on the first render, incorrectly allowing the
34
+ * inner renderer to inherit the outer renderer's MediaClientContext (which
35
+ * carries the wrong media token for this page).
36
+ *
37
+ * hasProvider() is synchronous and correct from render 1, closing that window.
26
38
  */
27
- var shouldSkipContext = Boolean((ssr === null || ssr === void 0 ? void 0 : ssr.config) || mediaProvider);
39
+ var shouldSkipContext = (0, _expValEquals.expValEquals)('platform_editor_media_reliability_enhancements', 'isEnabled', true) ? Boolean((ssr === null || ssr === void 0 ? void 0 : ssr.config) || providerFactory.hasProvider('mediaProvider') || mediaProvider) : Boolean((ssr === null || ssr === void 0 ? void 0 : ssr.config) || mediaProvider);
28
40
  var contextMediaClient = (0, _react.useContext)(_mediaClientReact.MediaClientContext);
29
41
 
30
42
  // MediaClientProvider currently requires a mediaClientConfig
@@ -71,7 +71,7 @@ var DEGRADED_SEVERITY_THRESHOLD = exports.DEGRADED_SEVERITY_THRESHOLD = 3000;
71
71
  var TABLE_INFO_TIMEOUT = 10000;
72
72
  var RENDER_EVENT_SAMPLE_RATE = 0.2;
73
73
  var packageName = "@atlaskit/renderer";
74
- var packageVersion = "128.10.5";
74
+ var packageVersion = "128.10.6";
75
75
  var setAsQueryContainerStyles = (0, _react2.css)({
76
76
  containerName: 'ak-renderer-wrapper',
77
77
  containerType: 'inline-size'
@@ -1,18 +1,30 @@
1
1
  import React, { useContext, useLayoutEffect, useMemo, useState } from 'react';
2
2
  import { MediaClientContext, getMediaClient } from '@atlaskit/media-client-react';
3
- import { useProviderLayout } from '@atlaskit/editor-common/provider-factory';
3
+ import { useProviderFactory, useProviderLayout } from '@atlaskit/editor-common/provider-factory';
4
+ import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
4
5
  export const EditorMediaClientProvider = ({
5
6
  children,
6
7
  ssr
7
8
  }) => {
8
9
  const [mediaClientConfig, setMediaClientConfig] = useState();
10
+ const providerFactory = useProviderFactory();
9
11
  const mediaProvider = useProviderLayout('mediaProvider');
10
12
 
11
13
  /**
12
- * If a mediaClientConfig is provided then we will force
13
- * skip the mediaClient from context
14
+ * Whether this renderer has its own media provider and should never inherit
15
+ * the mediaClient from a parent renderer's context.
16
+ *
17
+ * We use providerFactory.hasProvider() rather and checking the mediaProvider
18
+ * state value, because useProviderLayout subscribes via useLayoutEffect —
19
+ * meaning mediaProvider state is always undefined on the first render, even
20
+ * if the ProviderFactory already has a provider registered. This would cause
21
+ * shouldSkipContext to be false on the first render, incorrectly allowing the
22
+ * inner renderer to inherit the outer renderer's MediaClientContext (which
23
+ * carries the wrong media token for this page).
24
+ *
25
+ * hasProvider() is synchronous and correct from render 1, closing that window.
14
26
  */
15
- const shouldSkipContext = Boolean((ssr === null || ssr === void 0 ? void 0 : ssr.config) || mediaProvider);
27
+ const shouldSkipContext = expValEquals('platform_editor_media_reliability_enhancements', 'isEnabled', true) ? Boolean((ssr === null || ssr === void 0 ? void 0 : ssr.config) || providerFactory.hasProvider('mediaProvider') || mediaProvider) : Boolean((ssr === null || ssr === void 0 ? void 0 : ssr.config) || mediaProvider);
16
28
  const contextMediaClient = useContext(MediaClientContext);
17
29
 
18
30
  // MediaClientProvider currently requires a mediaClientConfig
@@ -57,7 +57,7 @@ export const DEGRADED_SEVERITY_THRESHOLD = 3000;
57
57
  const TABLE_INFO_TIMEOUT = 10000;
58
58
  const RENDER_EVENT_SAMPLE_RATE = 0.2;
59
59
  const packageName = "@atlaskit/renderer";
60
- const packageVersion = "128.10.5";
60
+ const packageVersion = "128.10.6";
61
61
  const setAsQueryContainerStyles = css({
62
62
  containerName: 'ak-renderer-wrapper',
63
63
  containerType: 'inline-size'
@@ -1,7 +1,8 @@
1
1
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
2
  import React, { useContext, useLayoutEffect, useMemo, useState } from 'react';
3
3
  import { MediaClientContext, getMediaClient } from '@atlaskit/media-client-react';
4
- import { useProviderLayout } from '@atlaskit/editor-common/provider-factory';
4
+ import { useProviderFactory, useProviderLayout } from '@atlaskit/editor-common/provider-factory';
5
+ import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
5
6
  export var EditorMediaClientProvider = function EditorMediaClientProvider(_ref) {
6
7
  var children = _ref.children,
7
8
  ssr = _ref.ssr;
@@ -9,13 +10,24 @@ export var EditorMediaClientProvider = function EditorMediaClientProvider(_ref)
9
10
  _useState2 = _slicedToArray(_useState, 2),
10
11
  mediaClientConfig = _useState2[0],
11
12
  setMediaClientConfig = _useState2[1];
13
+ var providerFactory = useProviderFactory();
12
14
  var mediaProvider = useProviderLayout('mediaProvider');
13
15
 
14
16
  /**
15
- * If a mediaClientConfig is provided then we will force
16
- * skip the mediaClient from context
17
+ * Whether this renderer has its own media provider and should never inherit
18
+ * the mediaClient from a parent renderer's context.
19
+ *
20
+ * We use providerFactory.hasProvider() rather and checking the mediaProvider
21
+ * state value, because useProviderLayout subscribes via useLayoutEffect —
22
+ * meaning mediaProvider state is always undefined on the first render, even
23
+ * if the ProviderFactory already has a provider registered. This would cause
24
+ * shouldSkipContext to be false on the first render, incorrectly allowing the
25
+ * inner renderer to inherit the outer renderer's MediaClientContext (which
26
+ * carries the wrong media token for this page).
27
+ *
28
+ * hasProvider() is synchronous and correct from render 1, closing that window.
17
29
  */
18
- var shouldSkipContext = Boolean((ssr === null || ssr === void 0 ? void 0 : ssr.config) || mediaProvider);
30
+ var shouldSkipContext = expValEquals('platform_editor_media_reliability_enhancements', 'isEnabled', true) ? Boolean((ssr === null || ssr === void 0 ? void 0 : ssr.config) || providerFactory.hasProvider('mediaProvider') || mediaProvider) : Boolean((ssr === null || ssr === void 0 ? void 0 : ssr.config) || mediaProvider);
19
31
  var contextMediaClient = useContext(MediaClientContext);
20
32
 
21
33
  // MediaClientProvider currently requires a mediaClientConfig
@@ -62,7 +62,7 @@ export var DEGRADED_SEVERITY_THRESHOLD = 3000;
62
62
  var TABLE_INFO_TIMEOUT = 10000;
63
63
  var RENDER_EVENT_SAMPLE_RATE = 0.2;
64
64
  var packageName = "@atlaskit/renderer";
65
- var packageVersion = "128.10.5";
65
+ var packageVersion = "128.10.6";
66
66
  var setAsQueryContainerStyles = css({
67
67
  containerName: 'ak-renderer-wrapper',
68
68
  containerType: 'inline-size'
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/renderer",
3
- "version": "128.10.6",
3
+ "version": "128.11.0",
4
4
  "description": "Renderer component",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -59,7 +59,7 @@
59
59
  "@atlaskit/status": "^3.2.0",
60
60
  "@atlaskit/task-decision": "^19.3.0",
61
61
  "@atlaskit/theme": "^23.0.0",
62
- "@atlaskit/tmp-editor-statsig": "^62.1.0",
62
+ "@atlaskit/tmp-editor-statsig": "^62.2.0",
63
63
  "@atlaskit/tokens": "^13.0.0",
64
64
  "@atlaskit/tooltip": "^21.1.0",
65
65
  "@atlaskit/visually-hidden": "^3.0.0",