@atlaskit/editor-plugin-breakout 2.1.8 → 2.2.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,17 @@
1
1
  # @atlaskit/editor-plugin-breakout
2
2
 
3
+ ## 2.2.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#147450](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/147450)
8
+ [`38f270ecf0ed0`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/38f270ecf0ed0) -
9
+ Revert optimisation made to breakout
10
+
11
+ ### Patch Changes
12
+
13
+ - Updated dependencies
14
+
3
15
  ## 2.1.8
4
16
 
5
17
  ### Patch Changes
@@ -1,30 +1,24 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _typeof = require("@babel/runtime/helpers/typeof");
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.breakoutPlugin = void 0;
9
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
9
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
12
10
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
- var _react = _interopRequireWildcard(require("react"));
11
+ var _react = _interopRequireDefault(require("react"));
14
12
  var _adfSchema = require("@atlaskit/adf-schema");
15
13
  var _hooks = require("@atlaskit/editor-common/hooks");
16
14
  var _safePlugin = require("@atlaskit/editor-common/safe-plugin");
17
15
  var _styles = require("@atlaskit/editor-common/styles");
18
- var _usePluginStateEffect = require("@atlaskit/editor-common/use-plugin-state-effect");
19
16
  var _useSharedPluginStateSelector = require("@atlaskit/editor-common/use-shared-plugin-state-selector");
20
17
  var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
21
18
  var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
22
19
  var _pluginKey = require("./pm-plugins/plugin-key");
23
20
  var _findBreakoutNode = require("./pm-plugins/utils/find-breakout-node");
24
- var _getBreakoutMode = require("./pm-plugins/utils/get-breakout-mode");
25
21
  var _LayoutButton = _interopRequireDefault(require("./ui/LayoutButton"));
26
- 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); }
27
- 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; }
28
22
  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
23
  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; }
30
24
  var BreakoutView = /*#__PURE__*/(0, _createClass2.default)(function BreakoutView(
@@ -115,7 +109,7 @@ function createPlugin(pluginInjectionApi, _ref) {
115
109
  });
116
110
  }
117
111
  var LayoutButtonWrapper = function LayoutButtonWrapper(_ref2) {
118
- var _breakoutState$breako2, _breakoutState$breako3;
112
+ var _breakoutNode$node;
119
113
  var api = _ref2.api,
120
114
  editorView = _ref2.editorView,
121
115
  boundariesElement = _ref2.boundariesElement,
@@ -130,6 +124,12 @@ var LayoutButtonWrapper = function LayoutButtonWrapper(_ref2) {
130
124
  editorDisabledState = _useSharedPluginState.editorDisabledState,
131
125
  blockControlsState = _useSharedPluginState.blockControlsState;
132
126
 
127
+ // breakoutNode
128
+ var breakoutNodeSelector = (0, _useSharedPluginStateSelector.useSharedPluginStateSelector)(api, 'breakout.breakoutNode', {
129
+ disabled: (0, _experiments.editorExperiment)('platform_editor_usesharedpluginstateselector', false)
130
+ });
131
+ var breakoutNode = (0, _experiments.editorExperiment)('platform_editor_usesharedpluginstateselector', true) ? breakoutNodeSelector : breakoutState === null || breakoutState === void 0 ? void 0 : breakoutState.breakoutNode;
132
+
133
133
  // isDragging
134
134
  var isDraggingSelector = (0, _useSharedPluginStateSelector.useSharedPluginStateSelector)(api, 'blockControls.isDragging', {
135
135
  disabled: (0, _experiments.editorExperiment)('platform_editor_usesharedpluginstateselector', false)
@@ -153,33 +153,6 @@ var LayoutButtonWrapper = function LayoutButtonWrapper(_ref2) {
153
153
  disabled: (0, _experiments.editorExperiment)('platform_editor_usesharedpluginstateselector', false)
154
154
  });
155
155
  var editorDisabled = (0, _experiments.editorExperiment)('platform_editor_usesharedpluginstateselector', true) ? editorDisabledSelector : editorDisabledState === null || editorDisabledState === void 0 ? void 0 : editorDisabledState.editorDisabled;
156
- var _useState = (0, _react.useState)(function () {
157
- var breakoutNode = (0, _findBreakoutNode.findSupportedNodeForBreakout)(editorView.state.selection);
158
- return breakoutNode !== undefined;
159
- }),
160
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
161
- isBreakoutNodePresent = _useState2[0],
162
- setIsBreakoutNodePresent = _useState2[1];
163
- var _useState3 = (0, _react.useState)((0, _getBreakoutMode.getBreakoutMode)(editorView.state)),
164
- _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
165
- breakoutMode = _useState4[0],
166
- setBreakoutMode = _useState4[1];
167
- (0, _usePluginStateEffect.usePluginStateEffect)(api, ['breakout'], function (_ref3) {
168
- var _breakoutState$breako;
169
- var breakoutState = _ref3.breakoutState;
170
- if ((0, _experiments.editorExperiment)('platform_editor_usesharedpluginstateselector', false)) {
171
- return;
172
- }
173
- var breakoutNode = (_breakoutState$breako = breakoutState === null || breakoutState === void 0 ? void 0 : breakoutState.breakoutNode) !== null && _breakoutState$breako !== void 0 ? _breakoutState$breako : null;
174
- var isBreakoutNodeNull = breakoutNode !== null;
175
- if (isBreakoutNodePresent !== isBreakoutNodeNull) {
176
- setIsBreakoutNodePresent(isBreakoutNodeNull);
177
- }
178
- var nextBreakoutMode = (0, _getBreakoutMode.getBreakoutMode)(editorView.state);
179
- if (nextBreakoutMode !== breakoutMode) {
180
- setBreakoutMode(nextBreakoutMode);
181
- }
182
- });
183
156
  if (isDragging || isPMDragging) {
184
157
  if ((0, _experiments.editorExperiment)('advanced_layouts', true)) {
185
158
  return null;
@@ -192,15 +165,13 @@ var LayoutButtonWrapper = function LayoutButtonWrapper(_ref2) {
192
165
  mountPoint: mountPoint,
193
166
  boundariesElement: boundariesElement,
194
167
  scrollableElement: scrollableElement,
195
- node: (_breakoutState$breako2 = breakoutState === null || breakoutState === void 0 || (_breakoutState$breako3 = breakoutState.breakoutNode) === null || _breakoutState$breako3 === void 0 ? void 0 : _breakoutState$breako3.node) !== null && _breakoutState$breako2 !== void 0 ? _breakoutState$breako2 : null,
196
- isLivePage: isEditMode,
197
- breakoutMode: breakoutMode,
198
- isBreakoutNodePresent: isBreakoutNodePresent
168
+ node: (_breakoutNode$node = breakoutNode === null || breakoutNode === void 0 ? void 0 : breakoutNode.node) !== null && _breakoutNode$node !== void 0 ? _breakoutNode$node : null,
169
+ isLivePage: isEditMode
199
170
  }) : null;
200
171
  };
201
- var breakoutPlugin = exports.breakoutPlugin = function breakoutPlugin(_ref4) {
202
- var options = _ref4.config,
203
- api = _ref4.api;
172
+ var breakoutPlugin = exports.breakoutPlugin = function breakoutPlugin(_ref3) {
173
+ var options = _ref3.config,
174
+ api = _ref3.api;
204
175
  return {
205
176
  name: 'breakout',
206
177
  pmPlugins: function pmPlugins() {
@@ -231,11 +202,11 @@ var breakoutPlugin = exports.breakoutPlugin = function breakoutPlugin(_ref4) {
231
202
  }
232
203
  return pluginState;
233
204
  },
234
- contentComponent: function contentComponent(_ref5) {
235
- var editorView = _ref5.editorView,
236
- popupsMountPoint = _ref5.popupsMountPoint,
237
- popupsBoundariesElement = _ref5.popupsBoundariesElement,
238
- popupsScrollableElement = _ref5.popupsScrollableElement;
205
+ contentComponent: function contentComponent(_ref4) {
206
+ var editorView = _ref4.editorView,
207
+ popupsMountPoint = _ref4.popupsMountPoint,
208
+ popupsBoundariesElement = _ref4.popupsBoundariesElement,
209
+ popupsScrollableElement = _ref4.popupsScrollableElement;
239
210
  // This is a bit crappy, but should be resolved once we move to a static schema.
240
211
  if (options && !options.allowBreakoutButton) {
241
212
  return null;
@@ -20,7 +20,6 @@ var _collapse = _interopRequireDefault(require("@atlaskit/icon/glyph/editor/coll
20
20
  var _expand = _interopRequireDefault(require("@atlaskit/icon/glyph/editor/expand"));
21
21
  var _colors = require("@atlaskit/theme/colors");
22
22
  var _constants = require("@atlaskit/theme/constants");
23
- var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
24
23
  var _removeBreakout = require("../editor-commands/remove-breakout");
25
24
  var _setBreakoutMode = require("../editor-commands/set-breakout-mode");
26
25
  var _pluginKey = require("../pm-plugins/plugin-key");
@@ -67,9 +66,7 @@ var LayoutButton = function LayoutButton(_ref) {
67
66
  scrollableElement = _ref.scrollableElement,
68
67
  editorView = _ref.editorView,
69
68
  node = _ref.node,
70
- isLivePage = _ref.isLivePage,
71
- breakoutModeProp = _ref.breakoutMode,
72
- isBreakoutNodePresent = _ref.isBreakoutNodePresent;
69
+ isLivePage = _ref.isLivePage;
73
70
  var handleClick = (0, _react.useCallback)(function (breakoutMode) {
74
71
  var state = editorView.state,
75
72
  dispatch = editorView.dispatch;
@@ -80,11 +77,10 @@ var LayoutButton = function LayoutButton(_ref) {
80
77
  }
81
78
  }, [editorView, isLivePage]);
82
79
  var state = editorView.state;
83
- var exitEarly = (0, _experiments.editorExperiment)('platform_editor_usesharedpluginstateselector', true) ? !isBreakoutNodePresent : !node;
84
- if (exitEarly || !(0, _isBreakoutMarkAllowed.isBreakoutMarkAllowed)(state)) {
80
+ if (!node || !(0, _isBreakoutMarkAllowed.isBreakoutMarkAllowed)(state)) {
85
81
  return null;
86
82
  }
87
- var breakoutMode = (0, _experiments.editorExperiment)('platform_editor_usesharedpluginstateselector', true) ? breakoutModeProp : (0, _getBreakoutMode.getBreakoutMode)(editorView.state);
83
+ var breakoutMode = (0, _getBreakoutMode.getBreakoutMode)(editorView.state);
88
84
  var titleMessage = (0, _utils.getTitle)(breakoutMode);
89
85
  var title = formatMessage(titleMessage);
90
86
  var nextBreakoutMode = (0, _utils.getNextBreakoutMode)(breakoutMode);
@@ -1,15 +1,13 @@
1
- import React, { useState } from 'react';
1
+ import React from 'react';
2
2
  import { breakout } from '@atlaskit/adf-schema';
3
3
  import { useSharedPluginState } from '@atlaskit/editor-common/hooks';
4
4
  import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
5
5
  import { BreakoutCssClassName } from '@atlaskit/editor-common/styles';
6
- import { usePluginStateEffect } from '@atlaskit/editor-common/use-plugin-state-effect';
7
6
  import { useSharedPluginStateSelector } from '@atlaskit/editor-common/use-shared-plugin-state-selector';
8
7
  import { akEditorSwoopCubicBezier } from '@atlaskit/editor-shared-styles';
9
8
  import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
10
9
  import { pluginKey } from './pm-plugins/plugin-key';
11
10
  import { findSupportedNodeForBreakout } from './pm-plugins/utils/find-breakout-node';
12
- import { getBreakoutMode } from './pm-plugins/utils/get-breakout-mode';
13
11
  import LayoutButton from './ui/LayoutButton';
14
12
  class BreakoutView {
15
13
  constructor(
@@ -108,7 +106,7 @@ const LayoutButtonWrapper = ({
108
106
  scrollableElement,
109
107
  mountPoint
110
108
  }) => {
111
- var _breakoutState$breako2, _breakoutState$breako3;
109
+ var _breakoutNode$node;
112
110
  // Re-render with `width` (but don't use state) due to https://bitbucket.org/atlassian/%7Bc8e2f021-38d2-46d0-9b7a-b3f7b428f724%7D/pull-requests/24272
113
111
  const {
114
112
  breakoutState,
@@ -119,6 +117,12 @@ const LayoutButtonWrapper = ({
119
117
  disabled: editorExperiment('platform_editor_usesharedpluginstateselector', true)
120
118
  });
121
119
 
120
+ // breakoutNode
121
+ const breakoutNodeSelector = useSharedPluginStateSelector(api, 'breakout.breakoutNode', {
122
+ disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
123
+ });
124
+ const breakoutNode = editorExperiment('platform_editor_usesharedpluginstateselector', true) ? breakoutNodeSelector : breakoutState === null || breakoutState === void 0 ? void 0 : breakoutState.breakoutNode;
125
+
122
126
  // isDragging
123
127
  const isDraggingSelector = useSharedPluginStateSelector(api, 'blockControls.isDragging', {
124
128
  disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
@@ -142,28 +146,6 @@ const LayoutButtonWrapper = ({
142
146
  disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
143
147
  });
144
148
  const editorDisabled = editorExperiment('platform_editor_usesharedpluginstateselector', true) ? editorDisabledSelector : editorDisabledState === null || editorDisabledState === void 0 ? void 0 : editorDisabledState.editorDisabled;
145
- const [isBreakoutNodePresent, setIsBreakoutNodePresent] = useState(() => {
146
- const breakoutNode = findSupportedNodeForBreakout(editorView.state.selection);
147
- return breakoutNode !== undefined;
148
- });
149
- const [breakoutMode, setBreakoutMode] = useState(getBreakoutMode(editorView.state));
150
- usePluginStateEffect(api, ['breakout'], ({
151
- breakoutState
152
- }) => {
153
- var _breakoutState$breako;
154
- if (editorExperiment('platform_editor_usesharedpluginstateselector', false)) {
155
- return;
156
- }
157
- const breakoutNode = (_breakoutState$breako = breakoutState === null || breakoutState === void 0 ? void 0 : breakoutState.breakoutNode) !== null && _breakoutState$breako !== void 0 ? _breakoutState$breako : null;
158
- const isBreakoutNodeNull = breakoutNode !== null;
159
- if (isBreakoutNodePresent !== isBreakoutNodeNull) {
160
- setIsBreakoutNodePresent(isBreakoutNodeNull);
161
- }
162
- const nextBreakoutMode = getBreakoutMode(editorView.state);
163
- if (nextBreakoutMode !== breakoutMode) {
164
- setBreakoutMode(nextBreakoutMode);
165
- }
166
- });
167
149
  if (isDragging || isPMDragging) {
168
150
  if (editorExperiment('advanced_layouts', true)) {
169
151
  return null;
@@ -176,10 +158,8 @@ const LayoutButtonWrapper = ({
176
158
  mountPoint: mountPoint,
177
159
  boundariesElement: boundariesElement,
178
160
  scrollableElement: scrollableElement,
179
- node: (_breakoutState$breako2 = breakoutState === null || breakoutState === void 0 ? void 0 : (_breakoutState$breako3 = breakoutState.breakoutNode) === null || _breakoutState$breako3 === void 0 ? void 0 : _breakoutState$breako3.node) !== null && _breakoutState$breako2 !== void 0 ? _breakoutState$breako2 : null,
180
- isLivePage: isEditMode,
181
- breakoutMode: breakoutMode,
182
- isBreakoutNodePresent: isBreakoutNodePresent
161
+ node: (_breakoutNode$node = breakoutNode === null || breakoutNode === void 0 ? void 0 : breakoutNode.node) !== null && _breakoutNode$node !== void 0 ? _breakoutNode$node : null,
162
+ isLivePage: isEditMode
183
163
  }) : null;
184
164
  };
185
165
  export const breakoutPlugin = ({
@@ -19,7 +19,6 @@ import CollapseIcon from '@atlaskit/icon/glyph/editor/collapse';
19
19
  import ExpandIcon from '@atlaskit/icon/glyph/editor/expand';
20
20
  import { B300, N20A, N300 } from '@atlaskit/theme/colors';
21
21
  import { layers } from '@atlaskit/theme/constants';
22
- import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
23
22
  import { removeBreakout } from '../editor-commands/remove-breakout';
24
23
  import { setBreakoutMode } from '../editor-commands/set-breakout-mode';
25
24
  import { getPluginState } from '../pm-plugins/plugin-key';
@@ -61,9 +60,7 @@ const LayoutButton = ({
61
60
  scrollableElement,
62
61
  editorView,
63
62
  node,
64
- isLivePage,
65
- breakoutMode: breakoutModeProp,
66
- isBreakoutNodePresent
63
+ isLivePage
67
64
  }) => {
68
65
  const handleClick = useCallback(breakoutMode => {
69
66
  const {
@@ -79,11 +76,10 @@ const LayoutButton = ({
79
76
  const {
80
77
  state
81
78
  } = editorView;
82
- const exitEarly = editorExperiment('platform_editor_usesharedpluginstateselector', true) ? !isBreakoutNodePresent : !node;
83
- if (exitEarly || !isBreakoutMarkAllowed(state)) {
79
+ if (!node || !isBreakoutMarkAllowed(state)) {
84
80
  return null;
85
81
  }
86
- const breakoutMode = editorExperiment('platform_editor_usesharedpluginstateselector', true) ? breakoutModeProp : getBreakoutMode(editorView.state);
82
+ const breakoutMode = getBreakoutMode(editorView.state);
87
83
  const titleMessage = getTitle(breakoutMode);
88
84
  const title = formatMessage(titleMessage);
89
85
  const nextBreakoutMode = getNextBreakoutMode(breakoutMode);
@@ -1,21 +1,18 @@
1
- import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
2
  import _createClass from "@babel/runtime/helpers/createClass";
4
3
  import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
5
4
  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; }
6
5
  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
- import React, { useState } from 'react';
6
+ import React from 'react';
8
7
  import { breakout } from '@atlaskit/adf-schema';
9
8
  import { useSharedPluginState } from '@atlaskit/editor-common/hooks';
10
9
  import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
11
10
  import { BreakoutCssClassName } from '@atlaskit/editor-common/styles';
12
- import { usePluginStateEffect } from '@atlaskit/editor-common/use-plugin-state-effect';
13
11
  import { useSharedPluginStateSelector } from '@atlaskit/editor-common/use-shared-plugin-state-selector';
14
12
  import { akEditorSwoopCubicBezier } from '@atlaskit/editor-shared-styles';
15
13
  import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
16
14
  import { pluginKey } from './pm-plugins/plugin-key';
17
15
  import { findSupportedNodeForBreakout } from './pm-plugins/utils/find-breakout-node';
18
- import { getBreakoutMode } from './pm-plugins/utils/get-breakout-mode';
19
16
  import LayoutButton from './ui/LayoutButton';
20
17
  var BreakoutView = /*#__PURE__*/_createClass(function BreakoutView(
21
18
  /**
@@ -105,7 +102,7 @@ function createPlugin(pluginInjectionApi, _ref) {
105
102
  });
106
103
  }
107
104
  var LayoutButtonWrapper = function LayoutButtonWrapper(_ref2) {
108
- var _breakoutState$breako2, _breakoutState$breako3;
105
+ var _breakoutNode$node;
109
106
  var api = _ref2.api,
110
107
  editorView = _ref2.editorView,
111
108
  boundariesElement = _ref2.boundariesElement,
@@ -120,6 +117,12 @@ var LayoutButtonWrapper = function LayoutButtonWrapper(_ref2) {
120
117
  editorDisabledState = _useSharedPluginState.editorDisabledState,
121
118
  blockControlsState = _useSharedPluginState.blockControlsState;
122
119
 
120
+ // breakoutNode
121
+ var breakoutNodeSelector = useSharedPluginStateSelector(api, 'breakout.breakoutNode', {
122
+ disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
123
+ });
124
+ var breakoutNode = editorExperiment('platform_editor_usesharedpluginstateselector', true) ? breakoutNodeSelector : breakoutState === null || breakoutState === void 0 ? void 0 : breakoutState.breakoutNode;
125
+
123
126
  // isDragging
124
127
  var isDraggingSelector = useSharedPluginStateSelector(api, 'blockControls.isDragging', {
125
128
  disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
@@ -143,33 +146,6 @@ var LayoutButtonWrapper = function LayoutButtonWrapper(_ref2) {
143
146
  disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
144
147
  });
145
148
  var editorDisabled = editorExperiment('platform_editor_usesharedpluginstateselector', true) ? editorDisabledSelector : editorDisabledState === null || editorDisabledState === void 0 ? void 0 : editorDisabledState.editorDisabled;
146
- var _useState = useState(function () {
147
- var breakoutNode = findSupportedNodeForBreakout(editorView.state.selection);
148
- return breakoutNode !== undefined;
149
- }),
150
- _useState2 = _slicedToArray(_useState, 2),
151
- isBreakoutNodePresent = _useState2[0],
152
- setIsBreakoutNodePresent = _useState2[1];
153
- var _useState3 = useState(getBreakoutMode(editorView.state)),
154
- _useState4 = _slicedToArray(_useState3, 2),
155
- breakoutMode = _useState4[0],
156
- setBreakoutMode = _useState4[1];
157
- usePluginStateEffect(api, ['breakout'], function (_ref3) {
158
- var _breakoutState$breako;
159
- var breakoutState = _ref3.breakoutState;
160
- if (editorExperiment('platform_editor_usesharedpluginstateselector', false)) {
161
- return;
162
- }
163
- var breakoutNode = (_breakoutState$breako = breakoutState === null || breakoutState === void 0 ? void 0 : breakoutState.breakoutNode) !== null && _breakoutState$breako !== void 0 ? _breakoutState$breako : null;
164
- var isBreakoutNodeNull = breakoutNode !== null;
165
- if (isBreakoutNodePresent !== isBreakoutNodeNull) {
166
- setIsBreakoutNodePresent(isBreakoutNodeNull);
167
- }
168
- var nextBreakoutMode = getBreakoutMode(editorView.state);
169
- if (nextBreakoutMode !== breakoutMode) {
170
- setBreakoutMode(nextBreakoutMode);
171
- }
172
- });
173
149
  if (isDragging || isPMDragging) {
174
150
  if (editorExperiment('advanced_layouts', true)) {
175
151
  return null;
@@ -182,15 +158,13 @@ var LayoutButtonWrapper = function LayoutButtonWrapper(_ref2) {
182
158
  mountPoint: mountPoint,
183
159
  boundariesElement: boundariesElement,
184
160
  scrollableElement: scrollableElement,
185
- node: (_breakoutState$breako2 = breakoutState === null || breakoutState === void 0 || (_breakoutState$breako3 = breakoutState.breakoutNode) === null || _breakoutState$breako3 === void 0 ? void 0 : _breakoutState$breako3.node) !== null && _breakoutState$breako2 !== void 0 ? _breakoutState$breako2 : null,
186
- isLivePage: isEditMode,
187
- breakoutMode: breakoutMode,
188
- isBreakoutNodePresent: isBreakoutNodePresent
161
+ node: (_breakoutNode$node = breakoutNode === null || breakoutNode === void 0 ? void 0 : breakoutNode.node) !== null && _breakoutNode$node !== void 0 ? _breakoutNode$node : null,
162
+ isLivePage: isEditMode
189
163
  }) : null;
190
164
  };
191
- export var breakoutPlugin = function breakoutPlugin(_ref4) {
192
- var options = _ref4.config,
193
- api = _ref4.api;
165
+ export var breakoutPlugin = function breakoutPlugin(_ref3) {
166
+ var options = _ref3.config,
167
+ api = _ref3.api;
194
168
  return {
195
169
  name: 'breakout',
196
170
  pmPlugins: function pmPlugins() {
@@ -221,11 +195,11 @@ export var breakoutPlugin = function breakoutPlugin(_ref4) {
221
195
  }
222
196
  return pluginState;
223
197
  },
224
- contentComponent: function contentComponent(_ref5) {
225
- var editorView = _ref5.editorView,
226
- popupsMountPoint = _ref5.popupsMountPoint,
227
- popupsBoundariesElement = _ref5.popupsBoundariesElement,
228
- popupsScrollableElement = _ref5.popupsScrollableElement;
198
+ contentComponent: function contentComponent(_ref4) {
199
+ var editorView = _ref4.editorView,
200
+ popupsMountPoint = _ref4.popupsMountPoint,
201
+ popupsBoundariesElement = _ref4.popupsBoundariesElement,
202
+ popupsScrollableElement = _ref4.popupsScrollableElement;
229
203
  // This is a bit crappy, but should be resolved once we move to a static schema.
230
204
  if (options && !options.allowBreakoutButton) {
231
205
  return null;
@@ -19,7 +19,6 @@ import CollapseIcon from '@atlaskit/icon/glyph/editor/collapse';
19
19
  import ExpandIcon from '@atlaskit/icon/glyph/editor/expand';
20
20
  import { B300, N20A, N300 } from '@atlaskit/theme/colors';
21
21
  import { layers } from '@atlaskit/theme/constants';
22
- import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
23
22
  import { removeBreakout } from '../editor-commands/remove-breakout';
24
23
  import { setBreakoutMode } from '../editor-commands/set-breakout-mode';
25
24
  import { getPluginState } from '../pm-plugins/plugin-key';
@@ -59,9 +58,7 @@ var LayoutButton = function LayoutButton(_ref) {
59
58
  scrollableElement = _ref.scrollableElement,
60
59
  editorView = _ref.editorView,
61
60
  node = _ref.node,
62
- isLivePage = _ref.isLivePage,
63
- breakoutModeProp = _ref.breakoutMode,
64
- isBreakoutNodePresent = _ref.isBreakoutNodePresent;
61
+ isLivePage = _ref.isLivePage;
65
62
  var handleClick = useCallback(function (breakoutMode) {
66
63
  var state = editorView.state,
67
64
  dispatch = editorView.dispatch;
@@ -72,11 +69,10 @@ var LayoutButton = function LayoutButton(_ref) {
72
69
  }
73
70
  }, [editorView, isLivePage]);
74
71
  var state = editorView.state;
75
- var exitEarly = editorExperiment('platform_editor_usesharedpluginstateselector', true) ? !isBreakoutNodePresent : !node;
76
- if (exitEarly || !isBreakoutMarkAllowed(state)) {
72
+ if (!node || !isBreakoutMarkAllowed(state)) {
77
73
  return null;
78
74
  }
79
- var breakoutMode = editorExperiment('platform_editor_usesharedpluginstateselector', true) ? breakoutModeProp : getBreakoutMode(editorView.state);
75
+ var breakoutMode = getBreakoutMode(editorView.state);
80
76
  var titleMessage = getTitle(breakoutMode);
81
77
  var title = formatMessage(titleMessage);
82
78
  var nextBreakoutMode = getNextBreakoutMode(breakoutMode);
@@ -1,6 +1,5 @@
1
1
  /// <reference types="react" />
2
2
  import type { WrappedComponentProps } from 'react-intl-next';
3
- import type { BreakoutMode } from '@atlaskit/editor-common/types';
4
3
  import type { Node as PMNode } from '@atlaskit/editor-prosemirror/model';
5
4
  import type { EditorView } from '@atlaskit/editor-prosemirror/view';
6
5
  export interface Props {
@@ -11,8 +10,6 @@ export interface Props {
11
10
  scrollableElement?: HTMLElement;
12
11
  handleClick?: Function;
13
12
  isLivePage?: boolean;
14
- breakoutMode: BreakoutMode | undefined;
15
- isBreakoutNodePresent: boolean;
16
13
  }
17
14
  declare const _default: import("react").FC<import("react-intl-next").WithIntlProps<Props & WrappedComponentProps>> & {
18
15
  WrappedComponent: import("react").ComponentType<Props & WrappedComponentProps>;
@@ -1,6 +1,5 @@
1
1
  /// <reference types="react" />
2
2
  import type { WrappedComponentProps } from 'react-intl-next';
3
- import type { BreakoutMode } from '@atlaskit/editor-common/types';
4
3
  import type { Node as PMNode } from '@atlaskit/editor-prosemirror/model';
5
4
  import type { EditorView } from '@atlaskit/editor-prosemirror/view';
6
5
  export interface Props {
@@ -11,8 +10,6 @@ export interface Props {
11
10
  scrollableElement?: HTMLElement;
12
11
  handleClick?: Function;
13
12
  isLivePage?: boolean;
14
- breakoutMode: BreakoutMode | undefined;
15
- isBreakoutNodePresent: boolean;
16
13
  }
17
14
  declare const _default: import("react").FC<import("react-intl-next").WithIntlProps<Props & WrappedComponentProps>> & {
18
15
  WrappedComponent: import("react").ComponentType<Props & WrappedComponentProps>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/editor-plugin-breakout",
3
- "version": "2.1.8",
3
+ "version": "2.2.0",
4
4
  "description": "Breakout plugin for @atlaskit/editor-core",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",
@@ -34,7 +34,7 @@
34
34
  },
35
35
  "dependencies": {
36
36
  "@atlaskit/adf-schema": "^47.6.0",
37
- "@atlaskit/editor-common": "^103.16.0",
37
+ "@atlaskit/editor-common": "^103.19.0",
38
38
  "@atlaskit/editor-plugin-block-controls": "^3.11.0",
39
39
  "@atlaskit/editor-plugin-editor-disabled": "^2.0.0",
40
40
  "@atlaskit/editor-plugin-editor-viewmode": "^3.1.0",
@@ -44,7 +44,7 @@
44
44
  "@atlaskit/icon": "^25.6.0",
45
45
  "@atlaskit/platform-feature-flags": "^1.1.0",
46
46
  "@atlaskit/theme": "^18.0.0",
47
- "@atlaskit/tmp-editor-statsig": "^4.14.0",
47
+ "@atlaskit/tmp-editor-statsig": "^4.15.0",
48
48
  "@atlaskit/tokens": "^4.8.0",
49
49
  "@babel/runtime": "^7.0.0",
50
50
  "@emotion/react": "^11.7.1"
@@ -55,13 +55,13 @@
55
55
  "react-intl-next": "npm:react-intl@^5.18.1"
56
56
  },
57
57
  "devDependencies": {
58
- "@af/integration-testing": "^0.5.0",
59
- "@af/visual-regression": "^1.3.0",
58
+ "@af/integration-testing": "workspace:^",
59
+ "@af/visual-regression": "workspace:^",
60
60
  "@atlaskit/editor-plugin-code-block": "^4.4.0",
61
61
  "@atlaskit/editor-plugin-composition": "^1.3.0",
62
62
  "@atlaskit/editor-plugin-decorations": "^2.0.0",
63
- "@atlaskit/ssr": "^0.4.0",
64
- "@atlaskit/visual-regression": "^0.10.0",
63
+ "@atlaskit/ssr": "workspace:^",
64
+ "@atlaskit/visual-regression": "workspace:^",
65
65
  "@testing-library/react": "^13.4.0",
66
66
  "typescript": "~5.4.2",
67
67
  "wait-for-expect": "^1.2.0"