@atlaskit/editor-common 76.27.2 → 76.27.3

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,11 @@
1
1
  # @atlaskit/editor-common
2
2
 
3
+ ## 76.27.3
4
+
5
+ ### Patch Changes
6
+
7
+ - [#61839](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/61839) [`4c12f0d11959`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/4c12f0d11959) - Fix react 18 popup flicker issue by synchronously flushing the position state.
8
+
3
9
  ## 76.27.2
4
10
 
5
11
  ### Patch Changes
@@ -16,7 +16,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
16
16
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
17
17
  var SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
18
18
  var packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
19
- var packageVersion = "76.27.2";
19
+ var packageVersion = "76.27.3";
20
20
  var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
21
21
  // Remove URL as it has UGC
22
22
  // TODO: Sanitise the URL instead of just removing it
@@ -24,7 +24,7 @@ var _templateObject, _templateObject2, _templateObject3;
24
24
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
25
25
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /** @jsx jsx */
26
26
  var packageName = "@atlaskit/editor-common";
27
- var packageVersion = "76.27.2";
27
+ var packageVersion = "76.27.3";
28
28
  var halfFocusRing = 1;
29
29
  var dropOffset = '0, 8';
30
30
  var DropList = /*#__PURE__*/function (_Component) {
@@ -23,7 +23,6 @@ var _focusTrap = _interopRequireDefault(require("focus-trap"));
23
23
  var _rafSchd = _interopRequireDefault(require("raf-schd"));
24
24
  var _reactDom = require("react-dom");
25
25
  var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
26
- var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
27
26
  var _utils = require("./utils");
28
27
  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; }
29
28
  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; }
@@ -141,6 +140,7 @@ var Popup = exports.default = /*#__PURE__*/function (_React$Component) {
141
140
  }, {
142
141
  key: "updatePosition",
143
142
  value: function updatePosition() {
143
+ var _this2 = this;
144
144
  var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;
145
145
  var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.state;
146
146
  var popup = state.popup;
@@ -148,9 +148,11 @@ var Popup = exports.default = /*#__PURE__*/function (_React$Component) {
148
148
  position = _this$calculatePositi.position,
149
149
  validPosition = _this$calculatePositi.validPosition;
150
150
  if (position && validPosition) {
151
- this.setState({
152
- position: position,
153
- validPosition: validPosition
151
+ (0, _reactDom.flushSync)(function () {
152
+ _this2.setState({
153
+ position: position,
154
+ validPosition: validPosition
155
+ });
154
156
  });
155
157
  }
156
158
  }
@@ -289,10 +291,6 @@ var Popup = exports.default = /*#__PURE__*/function (_React$Component) {
289
291
 
290
292
  //In some cases we don't want to use default "Popup" text as an aria-label. It might be tedious for screen reader users.
291
293
  var ariaLabel = this.props.ariaLabel === null ? undefined : this.props.ariaLabel || 'Popup';
292
-
293
- // If the position is not defined, render null because we haven't
294
- // calculated where on the page the children should render yet.
295
- var childrenDisplayed = position !== undefined ? this.props.children : null;
296
294
  return /*#__PURE__*/_react.default.createElement("div", {
297
295
  ref: this.handleRef,
298
296
  style: _objectSpread(_objectSpread({
@@ -304,7 +302,7 @@ var Popup = exports.default = /*#__PURE__*/function (_React$Component) {
304
302
  // Indicates component is an editor pop. Required for focus handling in Message.tsx
305
303
  ,
306
304
  "data-editor-popup": true
307
- }, (0, _platformFeatureFlags.getBooleanFF)('platform.editor.popup.fix-flicker-react-18') ? childrenDisplayed : this.props.children);
305
+ }, this.props.children);
308
306
  }
309
307
  }, {
310
308
  key: "render",
@@ -1,6 +1,6 @@
1
1
  const SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
2
2
  const packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
3
- const packageVersion = "76.27.2";
3
+ const packageVersion = "76.27.3";
4
4
  const sanitiseSentryEvents = (data, _hint) => {
5
5
  // Remove URL as it has UGC
6
6
  // TODO: Sanitise the URL instead of just removing it
@@ -9,7 +9,7 @@ import { themed } from '@atlaskit/theme/components';
9
9
  import { borderRadius } from '@atlaskit/theme/constants';
10
10
  import Layer from '../Layer';
11
11
  const packageName = "@atlaskit/editor-common";
12
- const packageVersion = "76.27.2";
12
+ const packageVersion = "76.27.3";
13
13
  const halfFocusRing = 1;
14
14
  const dropOffset = '0, 8';
15
15
  class DropList extends Component {
@@ -2,9 +2,8 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  import React from 'react';
3
3
  import createFocusTrap from 'focus-trap';
4
4
  import rafSchedule from 'raf-schd';
5
- import { createPortal } from 'react-dom';
5
+ import { createPortal, flushSync } from 'react-dom';
6
6
  import { akEditorFloatingPanelZIndex } from '@atlaskit/editor-shared-styles';
7
- import { getBooleanFF } from '@atlaskit/platform-feature-flags';
8
7
  import { calculatePlacement, calculatePosition, findOverflowScrollParent, validatePosition } from './utils';
9
8
  export default class Popup extends React.Component {
10
9
  constructor(...args) {
@@ -113,9 +112,11 @@ export default class Popup extends React.Component {
113
112
  validPosition
114
113
  } = this.calculatePosition(props, popup);
115
114
  if (position && validPosition) {
116
- this.setState({
117
- position,
118
- validPosition
115
+ flushSync(() => {
116
+ this.setState({
117
+ position,
118
+ validPosition
119
+ });
119
120
  });
120
121
  }
121
122
  }
@@ -243,10 +244,6 @@ export default class Popup extends React.Component {
243
244
 
244
245
  //In some cases we don't want to use default "Popup" text as an aria-label. It might be tedious for screen reader users.
245
246
  const ariaLabel = this.props.ariaLabel === null ? undefined : this.props.ariaLabel || 'Popup';
246
-
247
- // If the position is not defined, render null because we haven't
248
- // calculated where on the page the children should render yet.
249
- const childrenDisplayed = position !== undefined ? this.props.children : null;
250
247
  return /*#__PURE__*/React.createElement("div", {
251
248
  ref: this.handleRef,
252
249
  style: {
@@ -260,7 +257,7 @@ export default class Popup extends React.Component {
260
257
  // Indicates component is an editor pop. Required for focus handling in Message.tsx
261
258
  ,
262
259
  "data-editor-popup": true
263
- }, getBooleanFF('platform.editor.popup.fix-flicker-react-18') ? childrenDisplayed : this.props.children);
260
+ }, this.props.children);
264
261
  }
265
262
  render() {
266
263
  const {
@@ -6,7 +6,7 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
6
6
  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) { _defineProperty(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; }
7
7
  var SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
8
8
  var packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
9
- var packageVersion = "76.27.2";
9
+ var packageVersion = "76.27.3";
10
10
  var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
11
11
  // Remove URL as it has UGC
12
12
  // TODO: Sanitise the URL instead of just removing it
@@ -19,7 +19,7 @@ import { themed } from '@atlaskit/theme/components';
19
19
  import { borderRadius } from '@atlaskit/theme/constants';
20
20
  import Layer from '../Layer';
21
21
  var packageName = "@atlaskit/editor-common";
22
- var packageVersion = "76.27.2";
22
+ var packageVersion = "76.27.3";
23
23
  var halfFocusRing = 1;
24
24
  var dropOffset = '0, 8';
25
25
  var DropList = /*#__PURE__*/function (_Component) {
@@ -12,9 +12,8 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
12
12
  import React from 'react';
13
13
  import createFocusTrap from 'focus-trap';
14
14
  import rafSchedule from 'raf-schd';
15
- import { createPortal } from 'react-dom';
15
+ import { createPortal, flushSync } from 'react-dom';
16
16
  import { akEditorFloatingPanelZIndex } from '@atlaskit/editor-shared-styles';
17
- import { getBooleanFF } from '@atlaskit/platform-feature-flags';
18
17
  import { calculatePlacement, calculatePosition as _calculatePosition, findOverflowScrollParent, validatePosition } from './utils';
19
18
  var Popup = /*#__PURE__*/function (_React$Component) {
20
19
  _inherits(Popup, _React$Component);
@@ -128,6 +127,7 @@ var Popup = /*#__PURE__*/function (_React$Component) {
128
127
  }, {
129
128
  key: "updatePosition",
130
129
  value: function updatePosition() {
130
+ var _this2 = this;
131
131
  var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;
132
132
  var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.state;
133
133
  var popup = state.popup;
@@ -135,9 +135,11 @@ var Popup = /*#__PURE__*/function (_React$Component) {
135
135
  position = _this$calculatePositi.position,
136
136
  validPosition = _this$calculatePositi.validPosition;
137
137
  if (position && validPosition) {
138
- this.setState({
139
- position: position,
140
- validPosition: validPosition
138
+ flushSync(function () {
139
+ _this2.setState({
140
+ position: position,
141
+ validPosition: validPosition
142
+ });
141
143
  });
142
144
  }
143
145
  }
@@ -276,10 +278,6 @@ var Popup = /*#__PURE__*/function (_React$Component) {
276
278
 
277
279
  //In some cases we don't want to use default "Popup" text as an aria-label. It might be tedious for screen reader users.
278
280
  var ariaLabel = this.props.ariaLabel === null ? undefined : this.props.ariaLabel || 'Popup';
279
-
280
- // If the position is not defined, render null because we haven't
281
- // calculated where on the page the children should render yet.
282
- var childrenDisplayed = position !== undefined ? this.props.children : null;
283
281
  return /*#__PURE__*/React.createElement("div", {
284
282
  ref: this.handleRef,
285
283
  style: _objectSpread(_objectSpread({
@@ -291,7 +289,7 @@ var Popup = /*#__PURE__*/function (_React$Component) {
291
289
  // Indicates component is an editor pop. Required for focus handling in Message.tsx
292
290
  ,
293
291
  "data-editor-popup": true
294
- }, getBooleanFF('platform.editor.popup.fix-flicker-react-18') ? childrenDisplayed : this.props.children);
292
+ }, this.props.children);
295
293
  }
296
294
  }, {
297
295
  key: "render",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-common",
3
- "version": "76.27.2",
3
+ "version": "76.27.3",
4
4
  "description": "A package that contains common classes and components for editor and renderer",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -217,9 +217,6 @@
217
217
  "platform.editor.menu.group-items": {
218
218
  "type": "boolean"
219
219
  },
220
- "platform.editor.popup.fix-flicker-react-18": {
221
- "type": "boolean"
222
- },
223
220
  "platform.editor.find-changed-nodes-from-transaction-optimisation": {
224
221
  "type": "boolean"
225
222
  }