@atlaskit/editor-plugin-card 32.1.0 → 32.1.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 CHANGED
@@ -1,5 +1,19 @@
1
1
  # @atlaskit/editor-plugin-card
2
2
 
3
+ ## 32.1.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [`abb8145e77f80`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/abb8145e77f80) -
8
+ Behind `platform_editor_reduce_forced_layout_2`, the inline, block and embed card node views no
9
+ longer call `findOverflowScrollParent` on the editor DOM when `IntersectionObserver` is available.
10
+ That lookup walked every ancestor calling `getComputedStyle`, forcing a style recalculation once
11
+ per card, and its only consumer was Smart Card's `container` prop. `container` is read in exactly
12
+ one place — `LazyLazilyRenderCard`, which Smart Card only renders when `IntersectionObserver` is
13
+ unsupported — so on every supported browser the result was discarded. The lookup is still
14
+ performed when `IntersectionObserver` is unavailable, preserving the legacy behaviour.
15
+ - Updated dependencies
16
+
3
17
  ## 32.1.0
4
18
 
5
19
  ### Minor Changes
@@ -20,6 +20,7 @@ var _reactNodeView = _interopRequireDefault(require("@atlaskit/editor-common/rea
20
20
  var _ui = require("@atlaskit/editor-common/ui");
21
21
  var _utils = require("@atlaskit/editor-common/utils");
22
22
  var _editorSmartLinkDraggable = require("@atlaskit/editor-smart-link-draggable");
23
+ var _isExperimentEnabled = require("@atlaskit/platform-feature-experiments/is-experiment-enabled");
23
24
  var _smartCard = require("@atlaskit/smart-card");
24
25
  var _ssr = require("@atlaskit/smart-card/ssr");
25
26
  var _datasource = require("../nodeviews/datasource");
@@ -27,6 +28,7 @@ var _actions = require("../pm-plugins/actions");
27
28
  var _utils2 = require("../pm-plugins/utils");
28
29
  var _SmartCardSSRReactContextsProvider = require("../ui/SmartCardSSRReactContextsProvider");
29
30
  var _genericCard = require("./genericCard");
31
+ var _isIntersectionObserverSupported = require("./isIntersectionObserverSupported");
30
32
  function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
31
33
  function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
32
34
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } // eslint-disable-next-line @atlaskit/platform/prefer-crypto-random-uuid -- Use crypto.randomUUID instead
@@ -36,8 +38,6 @@ var BlockCardComponent = exports.BlockCardComponent = /*#__PURE__*/function (_Re
36
38
  var _this;
37
39
  (0, _classCallCheck2.default)(this, BlockCardComponent);
38
40
  _this = _callSuper(this, BlockCardComponent, [props]);
39
- // Ignored via go/ees005
40
- // eslint-disable-next-line @atlaskit/editor/no-as-casting
41
41
  (0, _defineProperty2.default)(_this, "onResolve", function (data) {
42
42
  var _this$props = _this.props,
43
43
  getPos = _this$props.getPos,
@@ -84,7 +84,9 @@ var BlockCardComponent = exports.BlockCardComponent = /*#__PURE__*/function (_Re
84
84
  throw err;
85
85
  }
86
86
  });
87
- _this.scrollContainer = (0, _ui.findOverflowScrollParent)(props.view.dom) || undefined;
87
+ _this.scrollContainer = (0, _isExperimentEnabled.isExperimentEnabled)('platform_editor_reduce_forced_layout_2') && (0, _isIntersectionObserverSupported.isIntersectionObserverSupported)() ? undefined :
88
+ // eslint-disable-next-line @atlaskit/editor/no-as-casting
89
+ (0, _ui.findOverflowScrollParent)(props.view.dom) || undefined;
88
90
  return _this;
89
91
  }
90
92
  (0, _inherits2.default)(BlockCardComponent, _React$PureComponent);
@@ -25,6 +25,7 @@ var _useSharedPluginStateSelector = require("@atlaskit/editor-common/use-shared-
25
25
  var _utils = require("@atlaskit/editor-common/utils");
26
26
  var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
27
27
  var _editorSmartLinkDraggable = require("@atlaskit/editor-smart-link-draggable");
28
+ var _isExperimentEnabled = require("@atlaskit/platform-feature-experiments/is-experiment-enabled");
28
29
  var _componentWithCondition = require("@atlaskit/platform-feature-flags-react/component-with-condition");
29
30
  var _fg = require("@atlaskit/platform-feature-flags/fg");
30
31
  var _smartCard = require("@atlaskit/smart-card");
@@ -36,6 +37,7 @@ var _ResizableEmbedCard = _interopRequireDefault(require("../ui/ResizableEmbedCa
36
37
  var _SmartCardSSRReactContextsProvider = require("../ui/SmartCardSSRReactContextsProvider");
37
38
  var _blockCard = require("./blockCard");
38
39
  var _genericCard = require("./genericCard");
40
+ var _isIntersectionObserverSupported = require("./isIntersectionObserverSupported");
39
41
  function _superPropGet(t, o, e, r) { var p = (0, _get2.default)((0, _getPrototypeOf2.default)(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
40
42
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
41
43
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
@@ -146,8 +148,6 @@ var EmbedCardComponent = exports.EmbedCardComponent = /*#__PURE__*/function (_Re
146
148
  var _this;
147
149
  (0, _classCallCheck2.default)(this, EmbedCardComponent);
148
150
  _this = _callSuper(this, EmbedCardComponent, [props]);
149
- // Ignored via go/ees005
150
- // eslint-disable-next-line @atlaskit/editor/no-as-casting
151
151
  (0, _defineProperty2.default)(_this, "embedIframeRef", /*#__PURE__*/_react.default.createRef());
152
152
  (0, _defineProperty2.default)(_this, "getPosSafely", function () {
153
153
  var getPos = _this.props.getPos;
@@ -307,7 +307,9 @@ var EmbedCardComponent = exports.EmbedCardComponent = /*#__PURE__*/function (_Re
307
307
  }
308
308
  });
309
309
  (0, _defineProperty2.default)(_this, "removeCardDispatched", false);
310
- _this.scrollContainer = (0, _ui.findOverflowScrollParent)(props.view.dom) || undefined;
310
+ _this.scrollContainer = (0, _isExperimentEnabled.isExperimentEnabled)('platform_editor_reduce_forced_layout_2') && (0, _isIntersectionObserverSupported.isIntersectionObserverSupported)() ? undefined :
311
+ // eslint-disable-next-line @atlaskit/editor/no-as-casting
312
+ (0, _ui.findOverflowScrollParent)(props.view.dom) || undefined;
311
313
  _this.state = {
312
314
  hasPreview: true
313
315
  };
@@ -17,6 +17,7 @@ var _ssr = require("@atlaskit/smart-card/ssr");
17
17
  var _editorExperiment = require("@atlaskit/tmp-editor-statsig/editor-experiment");
18
18
  var _actions = require("../pm-plugins/actions");
19
19
  var _toolbar = require("../ui/toolbar");
20
+ var _isIntersectionObserverSupported = require("./isIntersectionObserverSupported");
20
21
  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); }
21
22
  // eslint-disable-next-line @atlaskit/platform/prefer-crypto-random-uuid -- Use crypto.randomUUID instead
22
23
 
@@ -60,11 +61,10 @@ var InlineCard = exports.InlineCard = /*#__PURE__*/(0, _react.memo)(function (_r
60
61
  view.dispatch(tr);
61
62
  };
62
63
  }, [getPos, view]);
63
- var scrollContainer = (0, _react.useMemo)(
64
- // Ignored via go/ees005
65
- // eslint-disable-next-line @atlaskit/editor/no-as-casting
66
- function () {
67
- return (0, _ui.findOverflowScrollParent)(view.dom) || undefined;
64
+ var scrollContainer = (0, _react.useMemo)(function () {
65
+ return (0, _isExperimentEnabled.isExperimentEnabled)('platform_editor_reduce_forced_layout_2') && (0, _isIntersectionObserverSupported.isIntersectionObserverSupported)() ? undefined :
66
+ // eslint-disable-next-line @atlaskit/editor/no-as-casting
67
+ (0, _ui.findOverflowScrollParent)(view.dom) || undefined;
68
68
  }, [view.dom]);
69
69
  var onResolve = (0, _react.useCallback)(function (data) {
70
70
  if (!getPos || typeof getPos === 'boolean') {
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.isIntersectionObserverSupported = void 0;
7
+ /**
8
+ * Mirrors the internal check in `@atlaskit/smart-card`
9
+ * (`src/utils/is-intersection-observer-supported.tsx`), which is not part of that package's
10
+ * public API and so cannot be imported here.
11
+ *
12
+ * Smart Card only forwards its `container` prop to `react-lazily-render` when
13
+ * `IntersectionObserver` is unavailable. When it is available the prop is never read, so the
14
+ * caller can skip resolving a scroll container entirely.
15
+ */
16
+ var isIntersectionObserverSupported = exports.isIntersectionObserverSupported = function isIntersectionObserverSupported() {
17
+ return typeof IntersectionObserver !== 'undefined';
18
+ };
@@ -8,6 +8,7 @@ import ReactNodeView from '@atlaskit/editor-common/react-node-view';
8
8
  import { findOverflowScrollParent, UnsupportedBlock } from '@atlaskit/editor-common/ui';
9
9
  import { canRenderDatasource } from '@atlaskit/editor-common/utils';
10
10
  import { SmartLinkDraggable, SMART_LINK_DRAG_TYPES, SMART_LINK_APPEARANCE } from '@atlaskit/editor-smart-link-draggable';
11
+ import { isExperimentEnabled } from '@atlaskit/platform-feature-experiments/is-experiment-enabled';
11
12
  import { Card as SmartCard } from '@atlaskit/smart-card';
12
13
  import { CardSSR } from '@atlaskit/smart-card/ssr';
13
14
  import { Datasource } from '../nodeviews/datasource';
@@ -15,13 +16,12 @@ import { registerCard, removeCard } from '../pm-plugins/actions';
15
16
  import { isDatasourceNode } from '../pm-plugins/utils';
16
17
  import { SmartCardSSRReactContextsProvider } from '../ui/SmartCardSSRReactContextsProvider';
17
18
  import { Card } from './genericCard';
19
+ import { isIntersectionObserverSupported } from './isIntersectionObserverSupported';
18
20
 
19
21
  // eslint-disable-next-line @repo/internal/react/no-class-components
20
22
  export class BlockCardComponent extends React.PureComponent {
21
23
  constructor(props) {
22
24
  super(props);
23
- // Ignored via go/ees005
24
- // eslint-disable-next-line @atlaskit/editor/no-as-casting
25
25
  _defineProperty(this, "onResolve", data => {
26
26
  const {
27
27
  getPos,
@@ -72,7 +72,9 @@ export class BlockCardComponent extends React.PureComponent {
72
72
  throw err;
73
73
  }
74
74
  });
75
- this.scrollContainer = findOverflowScrollParent(props.view.dom) || undefined;
75
+ this.scrollContainer = isExperimentEnabled('platform_editor_reduce_forced_layout_2') && isIntersectionObserverSupported() ? undefined :
76
+ // eslint-disable-next-line @atlaskit/editor/no-as-casting
77
+ findOverflowScrollParent(props.view.dom) || undefined;
76
78
  }
77
79
  componentWillUnmount() {
78
80
  this.removeCard();
@@ -13,6 +13,7 @@ import { useSharedPluginStateSelector } from '@atlaskit/editor-common/use-shared
13
13
  import { floatingLayouts, isRichMediaInsideOfBlockNode } from '@atlaskit/editor-common/utils';
14
14
  import { akEditorFullPageNarrowBreakout, DEFAULT_EMBED_CARD_HEIGHT, DEFAULT_EMBED_CARD_WIDTH } from '@atlaskit/editor-shared-styles';
15
15
  import { SmartLinkDraggable, SMART_LINK_DRAG_TYPES, SMART_LINK_APPEARANCE } from '@atlaskit/editor-smart-link-draggable';
16
+ import { isExperimentEnabled } from '@atlaskit/platform-feature-experiments/is-experiment-enabled';
16
17
  import { componentWithCondition } from '@atlaskit/platform-feature-flags-react/component-with-condition';
17
18
  import { fg } from '@atlaskit/platform-feature-flags/fg';
18
19
  import { EmbedResizeMessageListener, Card as SmartCard } from '@atlaskit/smart-card';
@@ -24,6 +25,7 @@ import ResizableEmbedCard from '../ui/ResizableEmbedCard';
24
25
  import { SmartCardSSRReactContextsProvider } from '../ui/SmartCardSSRReactContextsProvider';
25
26
  import { BlockCardComponent } from './blockCard';
26
27
  import { Card } from './genericCard';
28
+ import { isIntersectionObserverSupported } from './isIntersectionObserverSupported';
27
29
 
28
30
  /**
29
31
  * Returns a forced aspect ratio for URLs that have a known canvas shape,
@@ -130,8 +132,6 @@ const CardInner = ({
130
132
  export class EmbedCardComponent extends React.PureComponent {
131
133
  constructor(props) {
132
134
  super(props);
133
- // Ignored via go/ees005
134
- // eslint-disable-next-line @atlaskit/editor/no-as-casting
135
135
  _defineProperty(this, "embedIframeRef", /*#__PURE__*/React.createRef());
136
136
  _defineProperty(this, "getPosSafely", () => {
137
137
  const {
@@ -303,7 +303,9 @@ export class EmbedCardComponent extends React.PureComponent {
303
303
  }
304
304
  });
305
305
  _defineProperty(this, "removeCardDispatched", false);
306
- this.scrollContainer = findOverflowScrollParent(props.view.dom) || undefined;
306
+ this.scrollContainer = isExperimentEnabled('platform_editor_reduce_forced_layout_2') && isIntersectionObserverSupported() ? undefined :
307
+ // eslint-disable-next-line @atlaskit/editor/no-as-casting
308
+ findOverflowScrollParent(props.view.dom) || undefined;
307
309
  this.state = {
308
310
  hasPreview: true
309
311
  };
@@ -10,6 +10,7 @@ import { CardSSR } from '@atlaskit/smart-card/ssr';
10
10
  import { editorExperiment } from '@atlaskit/tmp-editor-statsig/editor-experiment';
11
11
  import { registerCard, removeCard } from '../pm-plugins/actions';
12
12
  import { visitCardLinkAnalytics } from '../ui/toolbar';
13
+ import { isIntersectionObserverSupported } from './isIntersectionObserverSupported';
13
14
  export const InlineCard = /*#__PURE__*/memo(({
14
15
  node,
15
16
  cardContext,
@@ -55,10 +56,9 @@ export const InlineCard = /*#__PURE__*/memo(({
55
56
  view.dispatch(tr);
56
57
  };
57
58
  }, [getPos, view]);
58
- const scrollContainer = useMemo(
59
- // Ignored via go/ees005
59
+ const scrollContainer = useMemo(() => isExperimentEnabled('platform_editor_reduce_forced_layout_2') && isIntersectionObserverSupported() ? undefined :
60
60
  // eslint-disable-next-line @atlaskit/editor/no-as-casting
61
- () => findOverflowScrollParent(view.dom) || undefined, [view.dom]);
61
+ findOverflowScrollParent(view.dom) || undefined, [view.dom]);
62
62
  const onResolve = useCallback(data => {
63
63
  if (!getPos || typeof getPos === 'boolean') {
64
64
  return;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Mirrors the internal check in `@atlaskit/smart-card`
3
+ * (`src/utils/is-intersection-observer-supported.tsx`), which is not part of that package's
4
+ * public API and so cannot be imported here.
5
+ *
6
+ * Smart Card only forwards its `container` prop to `react-lazily-render` when
7
+ * `IntersectionObserver` is unavailable. When it is available the prop is never read, so the
8
+ * caller can skip resolving a scroll container entirely.
9
+ */
10
+ export const isIntersectionObserverSupported = () => typeof IntersectionObserver !== 'undefined';
@@ -17,6 +17,7 @@ import ReactNodeView from '@atlaskit/editor-common/react-node-view';
17
17
  import { findOverflowScrollParent, UnsupportedBlock } from '@atlaskit/editor-common/ui';
18
18
  import { canRenderDatasource } from '@atlaskit/editor-common/utils';
19
19
  import { SmartLinkDraggable, SMART_LINK_DRAG_TYPES, SMART_LINK_APPEARANCE } from '@atlaskit/editor-smart-link-draggable';
20
+ import { isExperimentEnabled } from '@atlaskit/platform-feature-experiments/is-experiment-enabled';
20
21
  import { Card as SmartCard } from '@atlaskit/smart-card';
21
22
  import { CardSSR } from '@atlaskit/smart-card/ssr';
22
23
  import { Datasource } from '../nodeviews/datasource';
@@ -24,6 +25,7 @@ import { registerCard, removeCard as _removeCard } from '../pm-plugins/actions';
24
25
  import { isDatasourceNode } from '../pm-plugins/utils';
25
26
  import { SmartCardSSRReactContextsProvider } from '../ui/SmartCardSSRReactContextsProvider';
26
27
  import { Card } from './genericCard';
28
+ import { isIntersectionObserverSupported } from './isIntersectionObserverSupported';
27
29
 
28
30
  // eslint-disable-next-line @repo/internal/react/no-class-components
29
31
  export var BlockCardComponent = /*#__PURE__*/function (_React$PureComponent) {
@@ -31,8 +33,6 @@ export var BlockCardComponent = /*#__PURE__*/function (_React$PureComponent) {
31
33
  var _this;
32
34
  _classCallCheck(this, BlockCardComponent);
33
35
  _this = _callSuper(this, BlockCardComponent, [props]);
34
- // Ignored via go/ees005
35
- // eslint-disable-next-line @atlaskit/editor/no-as-casting
36
36
  _defineProperty(_this, "onResolve", function (data) {
37
37
  var _this$props = _this.props,
38
38
  getPos = _this$props.getPos,
@@ -79,7 +79,9 @@ export var BlockCardComponent = /*#__PURE__*/function (_React$PureComponent) {
79
79
  throw err;
80
80
  }
81
81
  });
82
- _this.scrollContainer = findOverflowScrollParent(props.view.dom) || undefined;
82
+ _this.scrollContainer = isExperimentEnabled('platform_editor_reduce_forced_layout_2') && isIntersectionObserverSupported() ? undefined :
83
+ // eslint-disable-next-line @atlaskit/editor/no-as-casting
84
+ findOverflowScrollParent(props.view.dom) || undefined;
83
85
  return _this;
84
86
  }
85
87
  _inherits(BlockCardComponent, _React$PureComponent);
@@ -24,6 +24,7 @@ import { useSharedPluginStateSelector } from '@atlaskit/editor-common/use-shared
24
24
  import { floatingLayouts, isRichMediaInsideOfBlockNode } from '@atlaskit/editor-common/utils';
25
25
  import { akEditorFullPageNarrowBreakout, DEFAULT_EMBED_CARD_HEIGHT, DEFAULT_EMBED_CARD_WIDTH } from '@atlaskit/editor-shared-styles';
26
26
  import { SmartLinkDraggable, SMART_LINK_DRAG_TYPES, SMART_LINK_APPEARANCE } from '@atlaskit/editor-smart-link-draggable';
27
+ import { isExperimentEnabled } from '@atlaskit/platform-feature-experiments/is-experiment-enabled';
27
28
  import { componentWithCondition } from '@atlaskit/platform-feature-flags-react/component-with-condition';
28
29
  import { fg } from '@atlaskit/platform-feature-flags/fg';
29
30
  import { EmbedResizeMessageListener, Card as SmartCard } from '@atlaskit/smart-card';
@@ -35,6 +36,7 @@ import ResizableEmbedCard from '../ui/ResizableEmbedCard';
35
36
  import { SmartCardSSRReactContextsProvider } from '../ui/SmartCardSSRReactContextsProvider';
36
37
  import { BlockCardComponent } from './blockCard';
37
38
  import { Card } from './genericCard';
39
+ import { isIntersectionObserverSupported } from './isIntersectionObserverSupported';
38
40
 
39
41
  /**
40
42
  * Returns a forced aspect ratio for URLs that have a known canvas shape,
@@ -141,8 +143,6 @@ export var EmbedCardComponent = /*#__PURE__*/function (_React$PureComponent) {
141
143
  var _this;
142
144
  _classCallCheck(this, EmbedCardComponent);
143
145
  _this = _callSuper(this, EmbedCardComponent, [props]);
144
- // Ignored via go/ees005
145
- // eslint-disable-next-line @atlaskit/editor/no-as-casting
146
146
  _defineProperty(_this, "embedIframeRef", /*#__PURE__*/React.createRef());
147
147
  _defineProperty(_this, "getPosSafely", function () {
148
148
  var getPos = _this.props.getPos;
@@ -302,7 +302,9 @@ export var EmbedCardComponent = /*#__PURE__*/function (_React$PureComponent) {
302
302
  }
303
303
  });
304
304
  _defineProperty(_this, "removeCardDispatched", false);
305
- _this.scrollContainer = findOverflowScrollParent(props.view.dom) || undefined;
305
+ _this.scrollContainer = isExperimentEnabled('platform_editor_reduce_forced_layout_2') && isIntersectionObserverSupported() ? undefined :
306
+ // eslint-disable-next-line @atlaskit/editor/no-as-casting
307
+ findOverflowScrollParent(props.view.dom) || undefined;
306
308
  _this.state = {
307
309
  hasPreview: true
308
310
  };
@@ -10,6 +10,7 @@ import { CardSSR } from '@atlaskit/smart-card/ssr';
10
10
  import { editorExperiment } from '@atlaskit/tmp-editor-statsig/editor-experiment';
11
11
  import { registerCard, removeCard } from '../pm-plugins/actions';
12
12
  import { visitCardLinkAnalytics } from '../ui/toolbar';
13
+ import { isIntersectionObserverSupported } from './isIntersectionObserverSupported';
13
14
  export var InlineCard = /*#__PURE__*/memo(function (_ref) {
14
15
  var _cardContext$value;
15
16
  var node = _ref.node,
@@ -50,11 +51,10 @@ export var InlineCard = /*#__PURE__*/memo(function (_ref) {
50
51
  view.dispatch(tr);
51
52
  };
52
53
  }, [getPos, view]);
53
- var scrollContainer = useMemo(
54
- // Ignored via go/ees005
55
- // eslint-disable-next-line @atlaskit/editor/no-as-casting
56
- function () {
57
- return findOverflowScrollParent(view.dom) || undefined;
54
+ var scrollContainer = useMemo(function () {
55
+ return isExperimentEnabled('platform_editor_reduce_forced_layout_2') && isIntersectionObserverSupported() ? undefined :
56
+ // eslint-disable-next-line @atlaskit/editor/no-as-casting
57
+ findOverflowScrollParent(view.dom) || undefined;
58
58
  }, [view.dom]);
59
59
  var onResolve = useCallback(function (data) {
60
60
  if (!getPos || typeof getPos === 'boolean') {
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Mirrors the internal check in `@atlaskit/smart-card`
3
+ * (`src/utils/is-intersection-observer-supported.tsx`), which is not part of that package's
4
+ * public API and so cannot be imported here.
5
+ *
6
+ * Smart Card only forwards its `container` prop to `react-lazily-render` when
7
+ * `IntersectionObserver` is unavailable. When it is available the prop is never read, so the
8
+ * caller can skip resolving a scroll container entirely.
9
+ */
10
+ export var isIntersectionObserverSupported = function isIntersectionObserverSupported() {
11
+ return typeof IntersectionObserver !== 'undefined';
12
+ };
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Mirrors the internal check in `@atlaskit/smart-card`
3
+ * (`src/utils/is-intersection-observer-supported.tsx`), which is not part of that package's
4
+ * public API and so cannot be imported here.
5
+ *
6
+ * Smart Card only forwards its `container` prop to `react-lazily-render` when
7
+ * `IntersectionObserver` is unavailable. When it is available the prop is never read, so the
8
+ * caller can skip resolving a scroll container entirely.
9
+ */
10
+ export declare const isIntersectionObserverSupported: () => boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-plugin-card",
3
- "version": "32.1.0",
3
+ "version": "32.1.1",
4
4
  "description": "Card plugin for @atlaskit/editor-core",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",
@@ -43,7 +43,7 @@
43
43
  "@atlaskit/editor-plugin-user-intent": "^24.0.0",
44
44
  "@atlaskit/editor-plugin-width": "^27.0.0",
45
45
  "@atlaskit/editor-prosemirror": "^9.0.0",
46
- "@atlaskit/editor-shared-styles": "^4.3.0",
46
+ "@atlaskit/editor-shared-styles": "^4.4.0",
47
47
  "@atlaskit/editor-smart-link-draggable": "^1.2.0",
48
48
  "@atlaskit/editor-toolbar": "^2.8.0",
49
49
  "@atlaskit/editor-ui-control-model": "^2.10.0",
@@ -63,8 +63,8 @@
63
63
  "@atlaskit/platform-feature-flags-react": "^1.2.0",
64
64
  "@atlaskit/primitives": "^22.5.0",
65
65
  "@atlaskit/prosemirror-history": "^1.3.0",
66
- "@atlaskit/smart-card": "^46.5.0",
67
- "@atlaskit/tmp-editor-statsig": "^228.0.0",
66
+ "@atlaskit/smart-card": "^46.6.0",
67
+ "@atlaskit/tmp-editor-statsig": "^229.0.0",
68
68
  "@atlaskit/tokens": "^20.4.0",
69
69
  "@babel/runtime": "^7.0.0",
70
70
  "@emotion/react": "^11.7.1",
@@ -74,7 +74,7 @@
74
74
  "uuid": "^11.1.1"
75
75
  },
76
76
  "peerDependencies": {
77
- "@atlaskit/editor-common": "^130.1.0",
77
+ "@atlaskit/editor-common": "^130.3.0",
78
78
  "@atlaskit/link-provider": "^6.0.0",
79
79
  "react": "^18.2.0 || ^19.2.0",
80
80
  "react-intl": "^5.25.1 || ^6.0.0 || ^7.0.0"