@atlaskit/editor-plugin-block-menu 15.0.2 → 15.0.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 +9 -0
- package/dist/cjs/blockMenuPlugin.js +3 -1
- package/dist/cjs/ui/block-menu.js +43 -11
- package/dist/es2019/blockMenuPlugin.js +3 -1
- package/dist/es2019/ui/block-menu.js +32 -5
- package/dist/esm/blockMenuPlugin.js +3 -1
- package/dist/esm/ui/block-menu.js +43 -11
- package/dist/types/ui/block-menu.d.ts +1 -0
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# @atlaskit/editor-plugin-block-menu
|
|
2
2
|
|
|
3
|
+
## 15.0.3
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`e62dacf4416fd`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/e62dacf4416fd) -
|
|
8
|
+
Add the shared popup-anchor contract, registry-backed drag handle, and menu integrations behind
|
|
9
|
+
`platform_editor_block_control_migration`.
|
|
10
|
+
- Updated dependencies
|
|
11
|
+
|
|
3
12
|
## 15.0.2
|
|
4
13
|
|
|
5
14
|
### Patch Changes
|
|
@@ -23,6 +23,7 @@ var _flag = require("./ui/flag");
|
|
|
23
23
|
var blockMenuPlugin = exports.blockMenuPlugin = function blockMenuPlugin(_ref) {
|
|
24
24
|
var api = _ref.api,
|
|
25
25
|
config = _ref.config;
|
|
26
|
+
var blockControlMigrationEnabled = (0, _isExperimentEnabled.isExperimentEnabled)('platform_editor_block_control_migration');
|
|
26
27
|
var registry = (0, _editorActions.createBlockMenuRegistry)();
|
|
27
28
|
var transformSourceRegistry = (0, _isExperimentEnabled.isExperimentEnabled)('platform_editor_block_menu_transform_extensions') ? (0, _transformSourceRegistry.createBlockMenuTransformSourceRegistry)() : undefined;
|
|
28
29
|
registry.register((0, _blockMenuComponents.getBlockMenuComponents)({
|
|
@@ -128,7 +129,8 @@ var blockMenuPlugin = exports.blockMenuPlugin = function blockMenuPlugin(_ref) {
|
|
|
128
129
|
api: api,
|
|
129
130
|
mountTo: popupsMountPoint,
|
|
130
131
|
boundariesElement: popupsBoundariesElement,
|
|
131
|
-
scrollableElement: popupsScrollableElement
|
|
132
|
+
scrollableElement: popupsScrollableElement,
|
|
133
|
+
useRegistryAnchor: blockControlMigrationEnabled
|
|
132
134
|
}), /*#__PURE__*/_react.default.createElement(_flag.Flag, {
|
|
133
135
|
api: api
|
|
134
136
|
}));
|
|
@@ -14,6 +14,7 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
14
14
|
var _reactIntl = require("react-intl");
|
|
15
15
|
var _css = require("@atlaskit/css");
|
|
16
16
|
var _analytics = require("@atlaskit/editor-common/analytics");
|
|
17
|
+
var _surfaceDragHandleElement = require("@atlaskit/editor-common/block-controls/surface-drag-handle-element");
|
|
17
18
|
var _blockMenu = require("@atlaskit/editor-common/block-menu");
|
|
18
19
|
var _errorBoundary = require("@atlaskit/editor-common/error-boundary");
|
|
19
20
|
var _hooks = require("@atlaskit/editor-common/hooks");
|
|
@@ -175,12 +176,13 @@ var BlockMenuContent = function BlockMenuContent(_ref4) {
|
|
|
175
176
|
})));
|
|
176
177
|
};
|
|
177
178
|
var BlockMenu = function BlockMenu(_ref5) {
|
|
178
|
-
var _editorView$dom,
|
|
179
|
+
var _openMenuHandleRef$cu, _editorView$dom, _ref8, _api$analytics2;
|
|
179
180
|
var editorView = _ref5.editorView,
|
|
180
181
|
api = _ref5.api,
|
|
181
182
|
mountTo = _ref5.mountTo,
|
|
182
183
|
boundariesElement = _ref5.boundariesElement,
|
|
183
|
-
scrollableElement = _ref5.scrollableElement
|
|
184
|
+
scrollableElement = _ref5.scrollableElement,
|
|
185
|
+
useRegistryAnchor = _ref5.useRegistryAnchor;
|
|
184
186
|
var _useSharedPluginState = (0, _hooks.useSharedPluginStateWithSelector)(api, ['blockControls', 'userIntent'], function (states) {
|
|
185
187
|
var _states$blockControls, _states$blockControls2, _states$blockControls3, _states$userIntentSta, _states$blockControls4;
|
|
186
188
|
return {
|
|
@@ -198,11 +200,41 @@ var BlockMenu = function BlockMenu(_ref5) {
|
|
|
198
200
|
openedViaKeyboard = _useSharedPluginState.openedViaKeyboard;
|
|
199
201
|
var _useBlockMenu = (0, _blockMenuProvider.useBlockMenu)(),
|
|
200
202
|
onDropdownOpenChanged = _useBlockMenu.onDropdownOpenChanged;
|
|
201
|
-
var
|
|
203
|
+
var isMenuOpenRef = _react.default.useRef(isMenuOpen);
|
|
204
|
+
isMenuOpenRef.current = isMenuOpen;
|
|
205
|
+
var _React$useState = _react.default.useState(null),
|
|
206
|
+
_React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
|
|
207
|
+
surfaceDragHandle = _React$useState2[0],
|
|
208
|
+
setSurfaceDragHandle = _React$useState2[1];
|
|
209
|
+
_react.default.useLayoutEffect(function () {
|
|
210
|
+
if (!useRegistryAnchor) {
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
var readElement = function readElement() {
|
|
214
|
+
return setSurfaceDragHandle(_surfaceDragHandleElement.surfaceDragHandleElementStore.get(editorView));
|
|
215
|
+
};
|
|
216
|
+
readElement();
|
|
217
|
+
return _surfaceDragHandleElement.surfaceDragHandleElementStore.subscribe(editorView, function () {
|
|
218
|
+
if (!isMenuOpenRef.current) {
|
|
219
|
+
readElement();
|
|
220
|
+
}
|
|
221
|
+
});
|
|
222
|
+
}, [editorView, useRegistryAnchor]);
|
|
223
|
+
var openMenuHandleRef = _react.default.useRef(null);
|
|
224
|
+
var anchoredToRef = _react.default.useRef(undefined);
|
|
225
|
+
if (!isMenuOpen) {
|
|
226
|
+
openMenuHandleRef.current = null;
|
|
227
|
+
anchoredToRef.current = undefined;
|
|
228
|
+
} else if (!openMenuHandleRef.current || anchoredToRef.current !== menuTriggerBy) {
|
|
229
|
+
var _ref6, _surfaceDragHandleEle;
|
|
230
|
+
openMenuHandleRef.current = (_ref6 = (_surfaceDragHandleEle = _surfaceDragHandleElement.surfaceDragHandleElementStore.get(editorView)) !== null && _surfaceDragHandleEle !== void 0 ? _surfaceDragHandleEle : openMenuHandleRef.current) !== null && _ref6 !== void 0 ? _ref6 : surfaceDragHandle;
|
|
231
|
+
anchoredToRef.current = menuTriggerBy;
|
|
232
|
+
}
|
|
233
|
+
var targetHandleRef = useRegistryAnchor ? (_openMenuHandleRef$cu = openMenuHandleRef.current) !== null && _openMenuHandleRef$cu !== void 0 ? _openMenuHandleRef$cu : surfaceDragHandle : editorView === null || editorView === void 0 || (_editorView$dom = editorView.dom) === null || _editorView$dom === void 0 ? void 0 : _editorView$dom.querySelector(_styles.DRAG_HANDLE_SELECTOR);
|
|
202
234
|
var closeMenu = _react.default.useCallback(function () {
|
|
203
|
-
api === null || api === void 0 || api.core.actions.execute(function (
|
|
235
|
+
api === null || api === void 0 || api.core.actions.execute(function (_ref7) {
|
|
204
236
|
var _api$blockControls, _api$userIntent2;
|
|
205
|
-
var tr =
|
|
237
|
+
var tr = _ref7.tr;
|
|
206
238
|
api === null || api === void 0 || (_api$blockControls = api.blockControls) === null || _api$blockControls === void 0 || _api$blockControls.commands.toggleBlockMenu({
|
|
207
239
|
closeMenu: true
|
|
208
240
|
})({
|
|
@@ -224,10 +256,10 @@ var BlockMenu = function BlockMenu(_ref5) {
|
|
|
224
256
|
});
|
|
225
257
|
var prevIsMenuOpenRef = (0, _react.useRef)(false);
|
|
226
258
|
var popupRef = (0, _react.useRef)(undefined);
|
|
227
|
-
var _React$
|
|
228
|
-
_React$
|
|
229
|
-
menuHeight = _React$
|
|
230
|
-
setMenuHeight = _React$
|
|
259
|
+
var _React$useState3 = _react.default.useState(0),
|
|
260
|
+
_React$useState4 = (0, _slicedToArray2.default)(_React$useState3, 2),
|
|
261
|
+
menuHeight = _React$useState4[0],
|
|
262
|
+
setMenuHeight = _React$useState4[1];
|
|
231
263
|
var targetHandleHeightOffset = -((targetHandleRef === null || targetHandleRef === void 0 ? void 0 : targetHandleRef.clientHeight) || 0);
|
|
232
264
|
_react.default.useLayoutEffect(function () {
|
|
233
265
|
var _popupRef$current;
|
|
@@ -236,13 +268,13 @@ var BlockMenu = function BlockMenu(_ref5) {
|
|
|
236
268
|
}
|
|
237
269
|
setMenuHeight(((_popupRef$current = popupRef.current) === null || _popupRef$current === void 0 ? void 0 : _popupRef$current.clientHeight) || FALLBACK_MENU_HEIGHT);
|
|
238
270
|
}, [isMenuOpen]);
|
|
239
|
-
var hasFocus = (
|
|
271
|
+
var hasFocus = (_ref8 = (editorView === null || editorView === void 0 ? void 0 : editorView.hasFocus()) ||
|
|
240
272
|
// eslint-disable-next-line @atlaskit/platform/no-direct-document-usage
|
|
241
273
|
document.activeElement === targetHandleRef || popupRef.current && (
|
|
242
274
|
// eslint-disable-next-line @atlaskit/platform/no-direct-document-usage
|
|
243
275
|
popupRef.current.contains(document.activeElement) ||
|
|
244
276
|
// eslint-disable-next-line @atlaskit/platform/no-direct-document-usage
|
|
245
|
-
popupRef.current === document.activeElement)) !== null &&
|
|
277
|
+
popupRef.current === document.activeElement)) !== null && _ref8 !== void 0 ? _ref8 : false;
|
|
246
278
|
var selectedByShortcutOrDragHandle = !!isSelectedViaDragHandle || !!openedViaKeyboard;
|
|
247
279
|
|
|
248
280
|
// Use conditional hook based on feature flag
|
|
@@ -16,6 +16,7 @@ export const blockMenuPlugin = ({
|
|
|
16
16
|
api,
|
|
17
17
|
config
|
|
18
18
|
}) => {
|
|
19
|
+
const blockControlMigrationEnabled = isExperimentEnabled('platform_editor_block_control_migration');
|
|
19
20
|
const registry = createBlockMenuRegistry();
|
|
20
21
|
const transformSourceRegistry = isExperimentEnabled('platform_editor_block_menu_transform_extensions') ? createBlockMenuTransformSourceRegistry() : undefined;
|
|
21
22
|
registry.register(getBlockMenuComponents({
|
|
@@ -114,7 +115,8 @@ export const blockMenuPlugin = ({
|
|
|
114
115
|
api: api,
|
|
115
116
|
mountTo: popupsMountPoint,
|
|
116
117
|
boundariesElement: popupsBoundariesElement,
|
|
117
|
-
scrollableElement: popupsScrollableElement
|
|
118
|
+
scrollableElement: popupsScrollableElement,
|
|
119
|
+
useRegistryAnchor: blockControlMigrationEnabled
|
|
118
120
|
}), /*#__PURE__*/React.createElement(Flag, {
|
|
119
121
|
api: api
|
|
120
122
|
}));
|
|
@@ -5,6 +5,7 @@ import React, { useContext, useEffect, useRef } from 'react';
|
|
|
5
5
|
import { injectIntl } from 'react-intl';
|
|
6
6
|
import { cx } from '@atlaskit/css';
|
|
7
7
|
import { ACTION, ACTION_SUBJECT, EVENT_TYPE, INPUT_METHOD } from '@atlaskit/editor-common/analytics';
|
|
8
|
+
import { surfaceDragHandleElementStore } from '@atlaskit/editor-common/block-controls/surface-drag-handle-element';
|
|
8
9
|
import { BLOCK_MENU_TEST_ID } from '@atlaskit/editor-common/block-menu';
|
|
9
10
|
import { ErrorBoundary } from '@atlaskit/editor-common/error-boundary';
|
|
10
11
|
import { useSharedPluginStateWithSelector } from '@atlaskit/editor-common/hooks';
|
|
@@ -166,9 +167,10 @@ const BlockMenu = ({
|
|
|
166
167
|
api,
|
|
167
168
|
mountTo,
|
|
168
169
|
boundariesElement,
|
|
169
|
-
scrollableElement
|
|
170
|
+
scrollableElement,
|
|
171
|
+
useRegistryAnchor
|
|
170
172
|
}) => {
|
|
171
|
-
var _editorView$dom,
|
|
173
|
+
var _openMenuHandleRef$cu, _editorView$dom, _ref2, _api$analytics2;
|
|
172
174
|
const {
|
|
173
175
|
menuTriggerBy,
|
|
174
176
|
isSelectedViaDragHandle,
|
|
@@ -188,7 +190,32 @@ const BlockMenu = ({
|
|
|
188
190
|
const {
|
|
189
191
|
onDropdownOpenChanged
|
|
190
192
|
} = useBlockMenu();
|
|
191
|
-
const
|
|
193
|
+
const isMenuOpenRef = React.useRef(isMenuOpen);
|
|
194
|
+
isMenuOpenRef.current = isMenuOpen;
|
|
195
|
+
const [surfaceDragHandle, setSurfaceDragHandle] = React.useState(null);
|
|
196
|
+
React.useLayoutEffect(() => {
|
|
197
|
+
if (!useRegistryAnchor) {
|
|
198
|
+
return;
|
|
199
|
+
}
|
|
200
|
+
const readElement = () => setSurfaceDragHandle(surfaceDragHandleElementStore.get(editorView));
|
|
201
|
+
readElement();
|
|
202
|
+
return surfaceDragHandleElementStore.subscribe(editorView, () => {
|
|
203
|
+
if (!isMenuOpenRef.current) {
|
|
204
|
+
readElement();
|
|
205
|
+
}
|
|
206
|
+
});
|
|
207
|
+
}, [editorView, useRegistryAnchor]);
|
|
208
|
+
const openMenuHandleRef = React.useRef(null);
|
|
209
|
+
const anchoredToRef = React.useRef(undefined);
|
|
210
|
+
if (!isMenuOpen) {
|
|
211
|
+
openMenuHandleRef.current = null;
|
|
212
|
+
anchoredToRef.current = undefined;
|
|
213
|
+
} else if (!openMenuHandleRef.current || anchoredToRef.current !== menuTriggerBy) {
|
|
214
|
+
var _ref, _surfaceDragHandleEle;
|
|
215
|
+
openMenuHandleRef.current = (_ref = (_surfaceDragHandleEle = surfaceDragHandleElementStore.get(editorView)) !== null && _surfaceDragHandleEle !== void 0 ? _surfaceDragHandleEle : openMenuHandleRef.current) !== null && _ref !== void 0 ? _ref : surfaceDragHandle;
|
|
216
|
+
anchoredToRef.current = menuTriggerBy;
|
|
217
|
+
}
|
|
218
|
+
const targetHandleRef = useRegistryAnchor ? (_openMenuHandleRef$cu = openMenuHandleRef.current) !== null && _openMenuHandleRef$cu !== void 0 ? _openMenuHandleRef$cu : surfaceDragHandle : editorView === null || editorView === void 0 ? void 0 : (_editorView$dom = editorView.dom) === null || _editorView$dom === void 0 ? void 0 : _editorView$dom.querySelector(DRAG_HANDLE_SELECTOR);
|
|
192
219
|
const closeMenu = React.useCallback(() => {
|
|
193
220
|
api === null || api === void 0 ? void 0 : api.core.actions.execute(({
|
|
194
221
|
tr
|
|
@@ -224,13 +251,13 @@ const BlockMenu = ({
|
|
|
224
251
|
}
|
|
225
252
|
setMenuHeight(((_popupRef$current = popupRef.current) === null || _popupRef$current === void 0 ? void 0 : _popupRef$current.clientHeight) || FALLBACK_MENU_HEIGHT);
|
|
226
253
|
}, [isMenuOpen]);
|
|
227
|
-
const hasFocus = (
|
|
254
|
+
const hasFocus = (_ref2 = (editorView === null || editorView === void 0 ? void 0 : editorView.hasFocus()) ||
|
|
228
255
|
// eslint-disable-next-line @atlaskit/platform/no-direct-document-usage
|
|
229
256
|
document.activeElement === targetHandleRef || popupRef.current && (
|
|
230
257
|
// eslint-disable-next-line @atlaskit/platform/no-direct-document-usage
|
|
231
258
|
popupRef.current.contains(document.activeElement) ||
|
|
232
259
|
// eslint-disable-next-line @atlaskit/platform/no-direct-document-usage
|
|
233
|
-
popupRef.current === document.activeElement)) !== null &&
|
|
260
|
+
popupRef.current === document.activeElement)) !== null && _ref2 !== void 0 ? _ref2 : false;
|
|
234
261
|
const selectedByShortcutOrDragHandle = !!isSelectedViaDragHandle || !!openedViaKeyboard;
|
|
235
262
|
|
|
236
263
|
// Use conditional hook based on feature flag
|
|
@@ -16,6 +16,7 @@ import { Flag } from './ui/flag';
|
|
|
16
16
|
export var blockMenuPlugin = function blockMenuPlugin(_ref) {
|
|
17
17
|
var api = _ref.api,
|
|
18
18
|
config = _ref.config;
|
|
19
|
+
var blockControlMigrationEnabled = isExperimentEnabled('platform_editor_block_control_migration');
|
|
19
20
|
var registry = createBlockMenuRegistry();
|
|
20
21
|
var transformSourceRegistry = isExperimentEnabled('platform_editor_block_menu_transform_extensions') ? createBlockMenuTransformSourceRegistry() : undefined;
|
|
21
22
|
registry.register(getBlockMenuComponents({
|
|
@@ -121,7 +122,8 @@ export var blockMenuPlugin = function blockMenuPlugin(_ref) {
|
|
|
121
122
|
api: api,
|
|
122
123
|
mountTo: popupsMountPoint,
|
|
123
124
|
boundariesElement: popupsBoundariesElement,
|
|
124
|
-
scrollableElement: popupsScrollableElement
|
|
125
|
+
scrollableElement: popupsScrollableElement,
|
|
126
|
+
useRegistryAnchor: blockControlMigrationEnabled
|
|
125
127
|
}), /*#__PURE__*/React.createElement(Flag, {
|
|
126
128
|
api: api
|
|
127
129
|
}));
|
|
@@ -6,6 +6,7 @@ import React, { useContext, useEffect, useRef } from 'react';
|
|
|
6
6
|
import { injectIntl } from 'react-intl';
|
|
7
7
|
import { cx } from '@atlaskit/css';
|
|
8
8
|
import { ACTION, ACTION_SUBJECT, EVENT_TYPE, INPUT_METHOD } from '@atlaskit/editor-common/analytics';
|
|
9
|
+
import { surfaceDragHandleElementStore } from '@atlaskit/editor-common/block-controls/surface-drag-handle-element';
|
|
9
10
|
import { BLOCK_MENU_TEST_ID } from '@atlaskit/editor-common/block-menu';
|
|
10
11
|
import { ErrorBoundary } from '@atlaskit/editor-common/error-boundary';
|
|
11
12
|
import { useSharedPluginStateWithSelector } from '@atlaskit/editor-common/hooks';
|
|
@@ -166,12 +167,13 @@ var BlockMenuContent = function BlockMenuContent(_ref4) {
|
|
|
166
167
|
})));
|
|
167
168
|
};
|
|
168
169
|
var BlockMenu = function BlockMenu(_ref5) {
|
|
169
|
-
var _editorView$dom,
|
|
170
|
+
var _openMenuHandleRef$cu, _editorView$dom, _ref8, _api$analytics2;
|
|
170
171
|
var editorView = _ref5.editorView,
|
|
171
172
|
api = _ref5.api,
|
|
172
173
|
mountTo = _ref5.mountTo,
|
|
173
174
|
boundariesElement = _ref5.boundariesElement,
|
|
174
|
-
scrollableElement = _ref5.scrollableElement
|
|
175
|
+
scrollableElement = _ref5.scrollableElement,
|
|
176
|
+
useRegistryAnchor = _ref5.useRegistryAnchor;
|
|
175
177
|
var _useSharedPluginState = useSharedPluginStateWithSelector(api, ['blockControls', 'userIntent'], function (states) {
|
|
176
178
|
var _states$blockControls, _states$blockControls2, _states$blockControls3, _states$userIntentSta, _states$blockControls4;
|
|
177
179
|
return {
|
|
@@ -189,11 +191,41 @@ var BlockMenu = function BlockMenu(_ref5) {
|
|
|
189
191
|
openedViaKeyboard = _useSharedPluginState.openedViaKeyboard;
|
|
190
192
|
var _useBlockMenu = useBlockMenu(),
|
|
191
193
|
onDropdownOpenChanged = _useBlockMenu.onDropdownOpenChanged;
|
|
192
|
-
var
|
|
194
|
+
var isMenuOpenRef = React.useRef(isMenuOpen);
|
|
195
|
+
isMenuOpenRef.current = isMenuOpen;
|
|
196
|
+
var _React$useState = React.useState(null),
|
|
197
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
198
|
+
surfaceDragHandle = _React$useState2[0],
|
|
199
|
+
setSurfaceDragHandle = _React$useState2[1];
|
|
200
|
+
React.useLayoutEffect(function () {
|
|
201
|
+
if (!useRegistryAnchor) {
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
204
|
+
var readElement = function readElement() {
|
|
205
|
+
return setSurfaceDragHandle(surfaceDragHandleElementStore.get(editorView));
|
|
206
|
+
};
|
|
207
|
+
readElement();
|
|
208
|
+
return surfaceDragHandleElementStore.subscribe(editorView, function () {
|
|
209
|
+
if (!isMenuOpenRef.current) {
|
|
210
|
+
readElement();
|
|
211
|
+
}
|
|
212
|
+
});
|
|
213
|
+
}, [editorView, useRegistryAnchor]);
|
|
214
|
+
var openMenuHandleRef = React.useRef(null);
|
|
215
|
+
var anchoredToRef = React.useRef(undefined);
|
|
216
|
+
if (!isMenuOpen) {
|
|
217
|
+
openMenuHandleRef.current = null;
|
|
218
|
+
anchoredToRef.current = undefined;
|
|
219
|
+
} else if (!openMenuHandleRef.current || anchoredToRef.current !== menuTriggerBy) {
|
|
220
|
+
var _ref6, _surfaceDragHandleEle;
|
|
221
|
+
openMenuHandleRef.current = (_ref6 = (_surfaceDragHandleEle = surfaceDragHandleElementStore.get(editorView)) !== null && _surfaceDragHandleEle !== void 0 ? _surfaceDragHandleEle : openMenuHandleRef.current) !== null && _ref6 !== void 0 ? _ref6 : surfaceDragHandle;
|
|
222
|
+
anchoredToRef.current = menuTriggerBy;
|
|
223
|
+
}
|
|
224
|
+
var targetHandleRef = useRegistryAnchor ? (_openMenuHandleRef$cu = openMenuHandleRef.current) !== null && _openMenuHandleRef$cu !== void 0 ? _openMenuHandleRef$cu : surfaceDragHandle : editorView === null || editorView === void 0 || (_editorView$dom = editorView.dom) === null || _editorView$dom === void 0 ? void 0 : _editorView$dom.querySelector(DRAG_HANDLE_SELECTOR);
|
|
193
225
|
var closeMenu = React.useCallback(function () {
|
|
194
|
-
api === null || api === void 0 || api.core.actions.execute(function (
|
|
226
|
+
api === null || api === void 0 || api.core.actions.execute(function (_ref7) {
|
|
195
227
|
var _api$blockControls, _api$userIntent2;
|
|
196
|
-
var tr =
|
|
228
|
+
var tr = _ref7.tr;
|
|
197
229
|
api === null || api === void 0 || (_api$blockControls = api.blockControls) === null || _api$blockControls === void 0 || _api$blockControls.commands.toggleBlockMenu({
|
|
198
230
|
closeMenu: true
|
|
199
231
|
})({
|
|
@@ -215,10 +247,10 @@ var BlockMenu = function BlockMenu(_ref5) {
|
|
|
215
247
|
});
|
|
216
248
|
var prevIsMenuOpenRef = useRef(false);
|
|
217
249
|
var popupRef = useRef(undefined);
|
|
218
|
-
var _React$
|
|
219
|
-
_React$
|
|
220
|
-
menuHeight = _React$
|
|
221
|
-
setMenuHeight = _React$
|
|
250
|
+
var _React$useState3 = React.useState(0),
|
|
251
|
+
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
|
252
|
+
menuHeight = _React$useState4[0],
|
|
253
|
+
setMenuHeight = _React$useState4[1];
|
|
222
254
|
var targetHandleHeightOffset = -((targetHandleRef === null || targetHandleRef === void 0 ? void 0 : targetHandleRef.clientHeight) || 0);
|
|
223
255
|
React.useLayoutEffect(function () {
|
|
224
256
|
var _popupRef$current;
|
|
@@ -227,13 +259,13 @@ var BlockMenu = function BlockMenu(_ref5) {
|
|
|
227
259
|
}
|
|
228
260
|
setMenuHeight(((_popupRef$current = popupRef.current) === null || _popupRef$current === void 0 ? void 0 : _popupRef$current.clientHeight) || FALLBACK_MENU_HEIGHT);
|
|
229
261
|
}, [isMenuOpen]);
|
|
230
|
-
var hasFocus = (
|
|
262
|
+
var hasFocus = (_ref8 = (editorView === null || editorView === void 0 ? void 0 : editorView.hasFocus()) ||
|
|
231
263
|
// eslint-disable-next-line @atlaskit/platform/no-direct-document-usage
|
|
232
264
|
document.activeElement === targetHandleRef || popupRef.current && (
|
|
233
265
|
// eslint-disable-next-line @atlaskit/platform/no-direct-document-usage
|
|
234
266
|
popupRef.current.contains(document.activeElement) ||
|
|
235
267
|
// eslint-disable-next-line @atlaskit/platform/no-direct-document-usage
|
|
236
|
-
popupRef.current === document.activeElement)) !== null &&
|
|
268
|
+
popupRef.current === document.activeElement)) !== null && _ref8 !== void 0 ? _ref8 : false;
|
|
237
269
|
var selectedByShortcutOrDragHandle = !!isSelectedViaDragHandle || !!openedViaKeyboard;
|
|
238
270
|
|
|
239
271
|
// Use conditional hook based on feature flag
|
|
@@ -9,6 +9,7 @@ export type BlockMenuProps = {
|
|
|
9
9
|
editorView: EditorView | undefined;
|
|
10
10
|
mountTo?: HTMLElement;
|
|
11
11
|
scrollableElement?: HTMLElement;
|
|
12
|
+
useRegistryAnchor: boolean;
|
|
12
13
|
};
|
|
13
14
|
declare const _default_1: React.FC<WithIntlProps<BlockMenuProps & WrappedComponentProps>> & {
|
|
14
15
|
WrappedComponent: React.ComponentType<BlockMenuProps & WrappedComponentProps>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/editor-plugin-block-menu",
|
|
3
|
-
"version": "15.0.
|
|
3
|
+
"version": "15.0.3",
|
|
4
4
|
"description": "BlockMenu plugin for @atlaskit/editor-core",
|
|
5
5
|
"author": "Atlassian Pty Ltd",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"memoize-one": "^6.0.0"
|
|
45
45
|
},
|
|
46
46
|
"peerDependencies": {
|
|
47
|
-
"@atlaskit/editor-common": "^120.
|
|
47
|
+
"@atlaskit/editor-common": "^120.3.0",
|
|
48
48
|
"react": "^18.2.0 || ^19.2.0",
|
|
49
49
|
"react-intl": "^5.25.1 || ^6.0.0 || ^7.0.0"
|
|
50
50
|
},
|