@atlaskit/editor-common 93.2.0 → 93.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,22 @@
1
1
  # @atlaskit/editor-common
2
2
 
3
+ ## 93.2.2
4
+
5
+ ### Patch Changes
6
+
7
+ - [#151050](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/151050)
8
+ [`50e38f61af619`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/50e38f61af619) -
9
+ cleaned up ff for extended inline-extensions
10
+
11
+ ## 93.2.1
12
+
13
+ ### Patch Changes
14
+
15
+ - [#150725](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/150725)
16
+ [`46e9eccf1d0bc`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/46e9eccf1d0bc) -
17
+ ED-24117: refactors image loader for react 18
18
+ - Updated dependencies
19
+
3
20
  ## 93.2.0
4
21
 
5
22
  ### Minor Changes
@@ -10,7 +10,6 @@ var _react = _interopRequireWildcard(require("react"));
10
10
  var _react2 = require("@emotion/react");
11
11
  var _classnames = _interopRequireDefault(require("classnames"));
12
12
  var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
13
- var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
14
13
  var _hooks = require("../../../hooks");
15
14
  var _ui = require("../../../ui");
16
15
  var _Lozenge = _interopRequireDefault(require("../Lozenge"));
@@ -46,7 +45,6 @@ var InlineExtension = function InlineExtension(props) {
46
45
  'with-hover-border': showMacroInteractionDesignUpdates && isNodeHovered
47
46
  });
48
47
  var rendererContainerWidth = widthState ? widthState.width - (0, _editorSharedStyles.akEditorGutterPaddingDynamic)() * 2 : 0;
49
- var extendedInlineExtension = (0, _platformFeatureFlags.getBooleanFF)('platform.editor.inline_extension.extended_lcqdn') || false;
50
48
  var handleMouseEvent = function handleMouseEvent(didHover) {
51
49
  if (setIsNodeHovered) {
52
50
  setIsNodeHovered(didHover);
@@ -63,7 +61,7 @@ var InlineExtension = function InlineExtension(props) {
63
61
  "data-testid": "inline-extension-wrapper"
64
62
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/design-system/consistent-css-prop-usage -- Ignored via go/DSP-18766
65
63
  ,
66
- css: [_styles2.wrapperStyle, extendedInlineExtension && _styles2.inlineWrapperStyles]
64
+ css: [_styles2.wrapperStyle, _styles2.inlineWrapperStyles]
67
65
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
68
66
  ,
69
67
  className: classNames,
@@ -81,11 +79,8 @@ var InlineExtension = function InlineExtension(props) {
81
79
  isNodeSelected: isNodeSelected,
82
80
  showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates
83
81
  })));
84
- if (extendedInlineExtension) {
85
- return (0, _react2.jsx)(_ui.WidthContext.Provider, {
86
- value: (0, _ui.createWidthContext)(rendererContainerWidth)
87
- }, inlineExtensionInternal);
88
- }
89
- return inlineExtensionInternal;
82
+ return (0, _react2.jsx)(_ui.WidthContext.Provider, {
83
+ value: (0, _ui.createWidthContext)(rendererContainerWidth)
84
+ }, inlineExtensionInternal);
90
85
  };
91
86
  var _default = exports.default = InlineExtension;
@@ -17,7 +17,7 @@ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return
17
17
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
18
18
  var SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
19
19
  var packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
20
- var packageVersion = "93.2.0";
20
+ var packageVersion = "93.2.2";
21
21
  var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
22
22
  // Remove URL as it has UGC
23
23
  // TODO: Sanitise the URL instead of just removing it
@@ -24,7 +24,7 @@ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.
24
24
  * @jsx jsx
25
25
  */ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
26
26
  var packageName = "@atlaskit/editor-common";
27
- var packageVersion = "93.2.0";
27
+ var packageVersion = "93.2.2";
28
28
  var halfFocusRing = 1;
29
29
  var dropOffset = '0, 8';
30
30
  var DropList = /*#__PURE__*/function (_Component) {
@@ -5,7 +5,7 @@ var _typeof = require("@babel/runtime/helpers/typeof");
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.withImageLoader = void 0;
8
+ exports.withImageLoaderOld = exports.withImageLoader = void 0;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
11
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
@@ -15,11 +15,12 @@ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime
15
15
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
16
16
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
17
  var _react = _interopRequireWildcard(require("react"));
18
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
18
19
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
19
20
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
20
21
  function _createSuper(t) { var r = _isNativeReflectConstruct(); return function () { var e, o = (0, _getPrototypeOf2.default)(t); if (r) { var s = (0, _getPrototypeOf2.default)(this).constructor; e = Reflect.construct(o, arguments, s); } else e = o.apply(this, arguments); return (0, _possibleConstructorReturn2.default)(this, e); }; }
21
22
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
22
- var withImageLoader = exports.withImageLoader = function withImageLoader(Wrapped) {
23
+ var withImageLoaderOld = exports.withImageLoaderOld = function withImageLoaderOld(Wrapped) {
23
24
  return /*#__PURE__*/function (_Component) {
24
25
  (0, _inherits2.default)(WithImageLoader, _Component);
25
26
  var _super = _createSuper(WithImageLoader);
@@ -100,4 +101,92 @@ var withImageLoader = exports.withImageLoader = function withImageLoader(Wrapped
100
101
  }]);
101
102
  return WithImageLoader;
102
103
  }(_react.Component);
104
+ };
105
+ var withImageLoaderNew = function withImageLoaderNew(Wrapped) {
106
+ return /*#__PURE__*/function (_Component2) {
107
+ (0, _inherits2.default)(WithImageLoader, _Component2);
108
+ var _super2 = _createSuper(WithImageLoader);
109
+ function WithImageLoader() {
110
+ var _this2;
111
+ (0, _classCallCheck2.default)(this, WithImageLoader);
112
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
113
+ args[_key2] = arguments[_key2];
114
+ }
115
+ _this2 = _super2.call.apply(_super2, [this].concat(args));
116
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this2), "state", {
117
+ imageStatus: 'loading'
118
+ });
119
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this2), "onLoad", function () {
120
+ _this2.setState({
121
+ imageStatus: 'complete'
122
+ });
123
+ var onExternalImageLoaded = _this2.props.onExternalImageLoaded;
124
+ if (onExternalImageLoaded && _this2.img) {
125
+ onExternalImageLoaded({
126
+ width: _this2.img.naturalWidth,
127
+ height: _this2.img.naturalHeight
128
+ });
129
+ }
130
+ });
131
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this2), "onError", function () {
132
+ _this2.setState({
133
+ imageStatus: 'error'
134
+ });
135
+ });
136
+ return _this2;
137
+ }
138
+ (0, _createClass2.default)(WithImageLoader, [{
139
+ key: "componentDidMount",
140
+ value: function componentDidMount() {
141
+ this.fetchImage(this.props);
142
+ }
143
+ }, {
144
+ key: "componentDidUpdate",
145
+ value: function componentDidUpdate(newProps) {
146
+ if (newProps.url !== this.props.url) {
147
+ this.setState({
148
+ imageStatus: 'loading'
149
+ });
150
+ this.fetchImage(newProps);
151
+ }
152
+ }
153
+ }, {
154
+ key: "componentWillUnmount",
155
+ value: function componentWillUnmount() {
156
+ if (this.img) {
157
+ this.img.removeEventListener('load', this.onLoad);
158
+ this.img.removeEventListener('error', this.onError);
159
+ this.img = null;
160
+ }
161
+ }
162
+ }, {
163
+ key: "fetchImage",
164
+ value: function fetchImage(_ref2) {
165
+ var url = _ref2.url;
166
+ if (url) {
167
+ if (!this.img) {
168
+ this.img = new Image();
169
+ this.img.addEventListener('load', this.onLoad);
170
+ this.img.addEventListener('error', this.onError);
171
+ }
172
+ this.img.src = url;
173
+ }
174
+ }
175
+ }, {
176
+ key: "render",
177
+ value: function render() {
178
+ var imageStatus = this.state.imageStatus;
179
+ return /*#__PURE__*/_react.default.createElement(Wrapped, (0, _extends2.default)({}, this.props, {
180
+ imageStatus: imageStatus
181
+ }));
182
+ }
183
+ }]);
184
+ return WithImageLoader;
185
+ }(_react.Component);
186
+ };
187
+ var withImageLoader = exports.withImageLoader = function withImageLoader(Wrapped) {
188
+ if ((0, _platformFeatureFlags.fg)('platform_editor_react18_phase2')) {
189
+ return withImageLoaderNew(Wrapped);
190
+ }
191
+ return withImageLoaderOld(Wrapped);
103
192
  };
@@ -8,7 +8,6 @@ import React, { Fragment } from 'react';
8
8
  import { jsx } from '@emotion/react';
9
9
  import classnames from 'classnames';
10
10
  import { akEditorGutterPaddingDynamic } from '@atlaskit/editor-shared-styles';
11
- import { getBooleanFF } from '@atlaskit/platform-feature-flags';
12
11
  import { useSharedPluginState } from '../../../hooks';
13
12
  import { createWidthContext, WidthContext } from '../../../ui';
14
13
  import ExtensionLozenge from '../Lozenge';
@@ -39,7 +38,6 @@ const InlineExtension = props => {
39
38
  'with-hover-border': showMacroInteractionDesignUpdates && isNodeHovered
40
39
  });
41
40
  const rendererContainerWidth = widthState ? widthState.width - akEditorGutterPaddingDynamic() * 2 : 0;
42
- const extendedInlineExtension = getBooleanFF('platform.editor.inline_extension.extended_lcqdn') || false;
43
41
  const handleMouseEvent = didHover => {
44
42
  if (setIsNodeHovered) {
45
43
  setIsNodeHovered(didHover);
@@ -56,7 +54,7 @@ const InlineExtension = props => {
56
54
  "data-testid": "inline-extension-wrapper"
57
55
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/design-system/consistent-css-prop-usage -- Ignored via go/DSP-18766
58
56
  ,
59
- css: [wrapperStyle, extendedInlineExtension && inlineWrapperStyles]
57
+ css: [wrapperStyle, inlineWrapperStyles]
60
58
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
61
59
  ,
62
60
  className: classNames,
@@ -70,11 +68,8 @@ const InlineExtension = props => {
70
68
  isNodeSelected: isNodeSelected,
71
69
  showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates
72
70
  })));
73
- if (extendedInlineExtension) {
74
- return jsx(WidthContext.Provider, {
75
- value: createWidthContext(rendererContainerWidth)
76
- }, inlineExtensionInternal);
77
- }
78
- return inlineExtensionInternal;
71
+ return jsx(WidthContext.Provider, {
72
+ value: createWidthContext(rendererContainerWidth)
73
+ }, inlineExtensionInternal);
79
74
  };
80
75
  export default InlineExtension;
@@ -1,7 +1,7 @@
1
1
  import { isFedRamp } from './environment';
2
2
  const SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
3
3
  const packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
4
- const packageVersion = "93.2.0";
4
+ const packageVersion = "93.2.2";
5
5
  const sanitiseSentryEvents = (data, _hint) => {
6
6
  // Remove URL as it has UGC
7
7
  // TODO: Sanitise the URL instead of just removing it
@@ -13,7 +13,7 @@ import withAnalyticsContext from '@atlaskit/analytics-next/withAnalyticsContext'
13
13
  import withAnalyticsEvents from '@atlaskit/analytics-next/withAnalyticsEvents';
14
14
  import Layer from '../Layer';
15
15
  const packageName = "@atlaskit/editor-common";
16
- const packageVersion = "93.2.0";
16
+ const packageVersion = "93.2.2";
17
17
  const halfFocusRing = 1;
18
18
  const dropOffset = '0, 8';
19
19
  class DropList extends Component {
@@ -1,7 +1,8 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
3
  import React, { Component } from 'react';
4
- export const withImageLoader = Wrapped => class WithImageLoader extends Component {
4
+ import { fg } from '@atlaskit/platform-feature-flags';
5
+ export const withImageLoaderOld = Wrapped => class WithImageLoader extends Component {
5
6
  constructor(...args) {
6
7
  super(...args);
7
8
  _defineProperty(this, "state", {
@@ -65,4 +66,75 @@ export const withImageLoader = Wrapped => class WithImageLoader extends Componen
65
66
  imageStatus: imageStatus
66
67
  }));
67
68
  }
69
+ };
70
+ const withImageLoaderNew = Wrapped => class WithImageLoader extends Component {
71
+ constructor(...args) {
72
+ super(...args);
73
+ _defineProperty(this, "state", {
74
+ imageStatus: 'loading'
75
+ });
76
+ _defineProperty(this, "onLoad", () => {
77
+ this.setState({
78
+ imageStatus: 'complete'
79
+ });
80
+ const {
81
+ onExternalImageLoaded
82
+ } = this.props;
83
+ if (onExternalImageLoaded && this.img) {
84
+ onExternalImageLoaded({
85
+ width: this.img.naturalWidth,
86
+ height: this.img.naturalHeight
87
+ });
88
+ }
89
+ });
90
+ _defineProperty(this, "onError", () => {
91
+ this.setState({
92
+ imageStatus: 'error'
93
+ });
94
+ });
95
+ }
96
+ componentDidMount() {
97
+ this.fetchImage(this.props);
98
+ }
99
+ componentDidUpdate(newProps) {
100
+ if (newProps.url !== this.props.url) {
101
+ this.setState({
102
+ imageStatus: 'loading'
103
+ });
104
+ this.fetchImage(newProps);
105
+ }
106
+ }
107
+ componentWillUnmount() {
108
+ if (this.img) {
109
+ this.img.removeEventListener('load', this.onLoad);
110
+ this.img.removeEventListener('error', this.onError);
111
+ this.img = null;
112
+ }
113
+ }
114
+ fetchImage({
115
+ url
116
+ }) {
117
+ if (url) {
118
+ if (!this.img) {
119
+ this.img = new Image();
120
+ this.img.addEventListener('load', this.onLoad);
121
+ this.img.addEventListener('error', this.onError);
122
+ }
123
+ this.img.src = url;
124
+ }
125
+ }
126
+ render() {
127
+ const {
128
+ imageStatus
129
+ } = this.state;
130
+ return /*#__PURE__*/React.createElement(Wrapped, _extends({}, this.props, {
131
+ imageStatus: imageStatus
132
+ }));
133
+ }
134
+ };
135
+ export const withImageLoader = Wrapped => {
136
+ if (fg('platform_editor_react18_phase2')) {
137
+ return withImageLoaderNew(Wrapped);
138
+ }
139
+ return withImageLoaderOld(Wrapped);
68
140
  };
@@ -8,7 +8,6 @@ import React, { Fragment } from 'react';
8
8
  import { jsx } from '@emotion/react';
9
9
  import classnames from 'classnames';
10
10
  import { akEditorGutterPaddingDynamic } from '@atlaskit/editor-shared-styles';
11
- import { getBooleanFF } from '@atlaskit/platform-feature-flags';
12
11
  import { useSharedPluginState } from '../../../hooks';
13
12
  import { createWidthContext, WidthContext } from '../../../ui';
14
13
  import ExtensionLozenge from '../Lozenge';
@@ -35,7 +34,6 @@ var InlineExtension = function InlineExtension(props) {
35
34
  'with-hover-border': showMacroInteractionDesignUpdates && isNodeHovered
36
35
  });
37
36
  var rendererContainerWidth = widthState ? widthState.width - akEditorGutterPaddingDynamic() * 2 : 0;
38
- var extendedInlineExtension = getBooleanFF('platform.editor.inline_extension.extended_lcqdn') || false;
39
37
  var handleMouseEvent = function handleMouseEvent(didHover) {
40
38
  if (setIsNodeHovered) {
41
39
  setIsNodeHovered(didHover);
@@ -52,7 +50,7 @@ var InlineExtension = function InlineExtension(props) {
52
50
  "data-testid": "inline-extension-wrapper"
53
51
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-imported-style-values, @atlaskit/design-system/consistent-css-prop-usage -- Ignored via go/DSP-18766
54
52
  ,
55
- css: [wrapperStyle, extendedInlineExtension && inlineWrapperStyles]
53
+ css: [wrapperStyle, inlineWrapperStyles]
56
54
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
57
55
  ,
58
56
  className: classNames,
@@ -70,11 +68,8 @@ var InlineExtension = function InlineExtension(props) {
70
68
  isNodeSelected: isNodeSelected,
71
69
  showMacroInteractionDesignUpdates: showMacroInteractionDesignUpdates
72
70
  })));
73
- if (extendedInlineExtension) {
74
- return jsx(WidthContext.Provider, {
75
- value: createWidthContext(rendererContainerWidth)
76
- }, inlineExtensionInternal);
77
- }
78
- return inlineExtensionInternal;
71
+ return jsx(WidthContext.Provider, {
72
+ value: createWidthContext(rendererContainerWidth)
73
+ }, inlineExtensionInternal);
79
74
  };
80
75
  export default InlineExtension;
@@ -7,7 +7,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
7
7
  import { isFedRamp } from './environment';
8
8
  var SENTRY_DSN = 'https://0b10c8e02fb44d8796c047b102c9bee8@o55978.ingest.sentry.io/4505129224110080';
9
9
  var packageName = 'editor-common'; // Sentry doesn't accept '/' in its releases https://docs.sentry.io/platforms/javascript/configuration/releases/
10
- var packageVersion = "93.2.0";
10
+ var packageVersion = "93.2.2";
11
11
  var sanitiseSentryEvents = function sanitiseSentryEvents(data, _hint) {
12
12
  // Remove URL as it has UGC
13
13
  // TODO: Sanitise the URL instead of just removing it
@@ -21,7 +21,7 @@ import withAnalyticsContext from '@atlaskit/analytics-next/withAnalyticsContext'
21
21
  import withAnalyticsEvents from '@atlaskit/analytics-next/withAnalyticsEvents';
22
22
  import Layer from '../Layer';
23
23
  var packageName = "@atlaskit/editor-common";
24
- var packageVersion = "93.2.0";
24
+ var packageVersion = "93.2.2";
25
25
  var halfFocusRing = 1;
26
26
  var dropOffset = '0, 8';
27
27
  var DropList = /*#__PURE__*/function (_Component) {
@@ -9,7 +9,8 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
9
9
  function _createSuper(t) { var r = _isNativeReflectConstruct(); return function () { var e, o = _getPrototypeOf(t); if (r) { var s = _getPrototypeOf(this).constructor; e = Reflect.construct(o, arguments, s); } else e = o.apply(this, arguments); return _possibleConstructorReturn(this, e); }; }
10
10
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
11
11
  import React, { Component } from 'react';
12
- export var withImageLoader = function withImageLoader(Wrapped) {
12
+ import { fg } from '@atlaskit/platform-feature-flags';
13
+ export var withImageLoaderOld = function withImageLoaderOld(Wrapped) {
13
14
  return /*#__PURE__*/function (_Component) {
14
15
  _inherits(WithImageLoader, _Component);
15
16
  var _super = _createSuper(WithImageLoader);
@@ -90,4 +91,92 @@ export var withImageLoader = function withImageLoader(Wrapped) {
90
91
  }]);
91
92
  return WithImageLoader;
92
93
  }(Component);
94
+ };
95
+ var withImageLoaderNew = function withImageLoaderNew(Wrapped) {
96
+ return /*#__PURE__*/function (_Component2) {
97
+ _inherits(WithImageLoader, _Component2);
98
+ var _super2 = _createSuper(WithImageLoader);
99
+ function WithImageLoader() {
100
+ var _this2;
101
+ _classCallCheck(this, WithImageLoader);
102
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
103
+ args[_key2] = arguments[_key2];
104
+ }
105
+ _this2 = _super2.call.apply(_super2, [this].concat(args));
106
+ _defineProperty(_assertThisInitialized(_this2), "state", {
107
+ imageStatus: 'loading'
108
+ });
109
+ _defineProperty(_assertThisInitialized(_this2), "onLoad", function () {
110
+ _this2.setState({
111
+ imageStatus: 'complete'
112
+ });
113
+ var onExternalImageLoaded = _this2.props.onExternalImageLoaded;
114
+ if (onExternalImageLoaded && _this2.img) {
115
+ onExternalImageLoaded({
116
+ width: _this2.img.naturalWidth,
117
+ height: _this2.img.naturalHeight
118
+ });
119
+ }
120
+ });
121
+ _defineProperty(_assertThisInitialized(_this2), "onError", function () {
122
+ _this2.setState({
123
+ imageStatus: 'error'
124
+ });
125
+ });
126
+ return _this2;
127
+ }
128
+ _createClass(WithImageLoader, [{
129
+ key: "componentDidMount",
130
+ value: function componentDidMount() {
131
+ this.fetchImage(this.props);
132
+ }
133
+ }, {
134
+ key: "componentDidUpdate",
135
+ value: function componentDidUpdate(newProps) {
136
+ if (newProps.url !== this.props.url) {
137
+ this.setState({
138
+ imageStatus: 'loading'
139
+ });
140
+ this.fetchImage(newProps);
141
+ }
142
+ }
143
+ }, {
144
+ key: "componentWillUnmount",
145
+ value: function componentWillUnmount() {
146
+ if (this.img) {
147
+ this.img.removeEventListener('load', this.onLoad);
148
+ this.img.removeEventListener('error', this.onError);
149
+ this.img = null;
150
+ }
151
+ }
152
+ }, {
153
+ key: "fetchImage",
154
+ value: function fetchImage(_ref2) {
155
+ var url = _ref2.url;
156
+ if (url) {
157
+ if (!this.img) {
158
+ this.img = new Image();
159
+ this.img.addEventListener('load', this.onLoad);
160
+ this.img.addEventListener('error', this.onError);
161
+ }
162
+ this.img.src = url;
163
+ }
164
+ }
165
+ }, {
166
+ key: "render",
167
+ value: function render() {
168
+ var imageStatus = this.state.imageStatus;
169
+ return /*#__PURE__*/React.createElement(Wrapped, _extends({}, this.props, {
170
+ imageStatus: imageStatus
171
+ }));
172
+ }
173
+ }]);
174
+ return WithImageLoader;
175
+ }(Component);
176
+ };
177
+ export var withImageLoader = function withImageLoader(Wrapped) {
178
+ if (fg('platform_editor_react18_phase2')) {
179
+ return withImageLoaderNew(Wrapped);
180
+ }
181
+ return withImageLoaderOld(Wrapped);
93
182
  };
@@ -1,4 +1,5 @@
1
- import React, { type ComponentType } from 'react';
1
+ import React from 'react';
2
+ import type { ComponentType } from 'react';
2
3
  export interface ImageLoaderProps {
3
4
  url?: string;
4
5
  onExternalImageLoaded?: (dimensions: {
@@ -11,4 +12,5 @@ export interface ImageLoaderState {
11
12
  imageStatus: ImageStatus;
12
13
  }
13
14
  export type ImageStatus = 'complete' | 'loading' | 'error';
15
+ export declare const withImageLoaderOld: <P extends {}>(Wrapped: ComponentType<React.PropsWithChildren<P & ImageLoaderProps>>) => React.ComponentClass<P & ImageLoaderProps>;
14
16
  export declare const withImageLoader: <P extends {}>(Wrapped: ComponentType<React.PropsWithChildren<P & ImageLoaderProps>>) => React.ComponentClass<P & ImageLoaderProps>;
@@ -1,4 +1,5 @@
1
- import React, { type ComponentType } from 'react';
1
+ import React from 'react';
2
+ import type { ComponentType } from 'react';
2
3
  export interface ImageLoaderProps {
3
4
  url?: string;
4
5
  onExternalImageLoaded?: (dimensions: {
@@ -11,4 +12,5 @@ export interface ImageLoaderState {
11
12
  imageStatus: ImageStatus;
12
13
  }
13
14
  export type ImageStatus = 'complete' | 'loading' | 'error';
15
+ export declare const withImageLoaderOld: <P extends {}>(Wrapped: ComponentType<React.PropsWithChildren<P & ImageLoaderProps>>) => React.ComponentClass<P & ImageLoaderProps>;
14
16
  export declare const withImageLoader: <P extends {}>(Wrapped: ComponentType<React.PropsWithChildren<P & ImageLoaderProps>>) => React.ComponentClass<P & ImageLoaderProps>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-common",
3
- "version": "93.2.0",
3
+ "version": "93.2.2",
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/"
@@ -137,7 +137,7 @@
137
137
  "@atlaskit/media-file-preview": "^0.9.0",
138
138
  "@atlaskit/media-picker": "^66.7.0",
139
139
  "@atlaskit/media-ui": "^25.15.0",
140
- "@atlaskit/media-viewer": "49.0.1",
140
+ "@atlaskit/media-viewer": "49.1.0",
141
141
  "@atlaskit/mention": "^23.3.0",
142
142
  "@atlaskit/menu": "^2.12.0",
143
143
  "@atlaskit/onboarding": "^11.2.0",
@@ -145,7 +145,7 @@
145
145
  "@atlaskit/primitives": "^12.2.0",
146
146
  "@atlaskit/profilecard": "^20.4.0",
147
147
  "@atlaskit/section-message": "^6.6.0",
148
- "@atlaskit/smart-card": "^29.2.0",
148
+ "@atlaskit/smart-card": "^29.4.0",
149
149
  "@atlaskit/smart-user-picker": "^6.10.0",
150
150
  "@atlaskit/spinner": "^16.3.0",
151
151
  "@atlaskit/task-decision": "^17.11.0",
@@ -238,9 +238,6 @@
238
238
  "platform.linking-platform.datasource-assets_objects": {
239
239
  "type": "boolean"
240
240
  },
241
- "platform.editor.inline_extension.extended_lcqdn": {
242
- "type": "boolean"
243
- },
244
241
  "editor_inline_comments_on_inline_nodes": {
245
242
  "type": "boolean"
246
243
  },
@@ -265,6 +262,9 @@
265
262
  "platform_editor_react18_mention_with_provider": {
266
263
  "type": "boolean"
267
264
  },
265
+ "platform_editor_react18_phase2": {
266
+ "type": "boolean"
267
+ },
268
268
  "cc_page_experiences_live_search_wysiwyg": {
269
269
  "type": "boolean"
270
270
  },