@atlaskit/editor-plugin-media 3.0.2 → 3.0.4
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 +19 -0
- package/dist/cjs/mediaPlugin.js +43 -22
- package/dist/cjs/nodeviews/mediaGroup.js +22 -20
- package/dist/cjs/nodeviews/mediaInline.js +43 -38
- package/dist/cjs/nodeviews/mediaNodeView/index.js +20 -11
- package/dist/cjs/nodeviews/mediaSingle.js +48 -43
- package/dist/cjs/pm-plugins/alt-text/ui/AltTextEdit.js +21 -10
- package/dist/cjs/pm-plugins/pixel-resizing/ui/index.js +15 -4
- package/dist/cjs/pm-plugins/pixel-resizing/ui/pixel-entry.js +7 -4
- package/dist/cjs/ui/CommentBadge/index.js +26 -33
- package/dist/cjs/ui/MediaLinkingToolbar.js +20 -5
- package/dist/cjs/ui/MediaPicker/BrowserWrapper.js +2 -2
- package/dist/cjs/ui/MediaPicker/ClipboardWrapper.js +4 -4
- package/dist/cjs/ui/MediaPicker/DropzoneWrapper.js +72 -31
- package/dist/cjs/ui/MediaPicker/PickerFacadeProvider.js +37 -9
- package/dist/cjs/ui/MediaPicker/index.js +32 -25
- package/dist/cjs/ui/ToolbarMedia/index.js +18 -13
- package/dist/cjs/ui/hooks/useMediaProvider.js +14 -9
- package/dist/cjs/ui/toolbar/alt-text.js +7 -3
- package/dist/cjs/ui/toolbar/index.js +11 -3
- package/dist/cjs/ui/toolbar/linking.js +20 -5
- package/dist/cjs/ui/toolbar/pixel-resizing.js +4 -2
- package/dist/es2019/mediaPlugin.js +47 -24
- package/dist/es2019/nodeviews/mediaGroup.js +23 -20
- package/dist/es2019/nodeviews/mediaInline.js +45 -39
- package/dist/es2019/nodeviews/mediaNodeView/index.js +22 -12
- package/dist/es2019/nodeviews/mediaSingle.js +49 -43
- package/dist/es2019/pm-plugins/alt-text/ui/AltTextEdit.js +14 -3
- package/dist/es2019/pm-plugins/pixel-resizing/ui/index.js +17 -6
- package/dist/es2019/pm-plugins/pixel-resizing/ui/pixel-entry.js +7 -4
- package/dist/es2019/ui/CommentBadge/index.js +29 -35
- package/dist/es2019/ui/MediaLinkingToolbar.js +19 -6
- package/dist/es2019/ui/MediaPicker/BrowserWrapper.js +2 -2
- package/dist/es2019/ui/MediaPicker/ClipboardWrapper.js +4 -4
- package/dist/es2019/ui/MediaPicker/DropzoneWrapper.js +53 -14
- package/dist/es2019/ui/MediaPicker/PickerFacadeProvider.js +37 -7
- package/dist/es2019/ui/MediaPicker/index.js +34 -26
- package/dist/es2019/ui/ToolbarMedia/index.js +20 -14
- package/dist/es2019/ui/hooks/useMediaProvider.js +16 -10
- package/dist/es2019/ui/toolbar/alt-text.js +7 -3
- package/dist/es2019/ui/toolbar/index.js +10 -2
- package/dist/es2019/ui/toolbar/linking.js +24 -5
- package/dist/es2019/ui/toolbar/pixel-resizing.js +4 -2
- package/dist/esm/mediaPlugin.js +44 -23
- package/dist/esm/nodeviews/mediaGroup.js +23 -21
- package/dist/esm/nodeviews/mediaInline.js +44 -39
- package/dist/esm/nodeviews/mediaNodeView/index.js +21 -12
- package/dist/esm/nodeviews/mediaSingle.js +49 -44
- package/dist/esm/pm-plugins/alt-text/ui/AltTextEdit.js +21 -10
- package/dist/esm/pm-plugins/pixel-resizing/ui/index.js +15 -4
- package/dist/esm/pm-plugins/pixel-resizing/ui/pixel-entry.js +7 -4
- package/dist/esm/ui/CommentBadge/index.js +27 -34
- package/dist/esm/ui/MediaLinkingToolbar.js +20 -5
- package/dist/esm/ui/MediaPicker/BrowserWrapper.js +2 -2
- package/dist/esm/ui/MediaPicker/ClipboardWrapper.js +4 -4
- package/dist/esm/ui/MediaPicker/DropzoneWrapper.js +72 -31
- package/dist/esm/ui/MediaPicker/PickerFacadeProvider.js +37 -9
- package/dist/esm/ui/MediaPicker/index.js +33 -26
- package/dist/esm/ui/ToolbarMedia/index.js +19 -14
- package/dist/esm/ui/hooks/useMediaProvider.js +15 -10
- package/dist/esm/ui/toolbar/alt-text.js +7 -3
- package/dist/esm/ui/toolbar/index.js +10 -2
- package/dist/esm/ui/toolbar/linking.js +20 -5
- package/dist/esm/ui/toolbar/pixel-resizing.js +4 -2
- package/dist/types/pm-plugins/alt-text/ui/AltTextEdit.d.ts +2 -0
- package/dist/types/pm-plugins/pixel-resizing/ui/index.d.ts +2 -1
- package/dist/types/pm-plugins/pixel-resizing/ui/types.d.ts +7 -2
- package/dist/types/ui/MediaLinkingToolbar.d.ts +3 -3
- package/dist/types/ui/MediaPicker/BrowserWrapper.d.ts +4 -3
- package/dist/types/ui/MediaPicker/ClipboardWrapper.d.ts +4 -3
- package/dist/types/ui/MediaPicker/DropzoneWrapper.d.ts +4 -4
- package/dist/types/ui/MediaPicker/PickerFacadeProvider.d.ts +4 -3
- package/dist/types/ui/MediaPicker/index.d.ts +2 -2
- package/dist/types/ui/toolbar/alt-text.d.ts +1 -0
- package/dist/types/ui/toolbar/index.d.ts +1 -0
- package/dist/types/ui/toolbar/pixel-resizing.d.ts +1 -1
- package/dist/types-ts4.5/pm-plugins/alt-text/ui/AltTextEdit.d.ts +2 -0
- package/dist/types-ts4.5/pm-plugins/pixel-resizing/ui/index.d.ts +2 -1
- package/dist/types-ts4.5/pm-plugins/pixel-resizing/ui/types.d.ts +7 -2
- package/dist/types-ts4.5/ui/MediaLinkingToolbar.d.ts +3 -3
- package/dist/types-ts4.5/ui/MediaPicker/BrowserWrapper.d.ts +4 -3
- package/dist/types-ts4.5/ui/MediaPicker/ClipboardWrapper.d.ts +4 -3
- package/dist/types-ts4.5/ui/MediaPicker/DropzoneWrapper.d.ts +4 -4
- package/dist/types-ts4.5/ui/MediaPicker/PickerFacadeProvider.d.ts +4 -3
- package/dist/types-ts4.5/ui/MediaPicker/index.d.ts +2 -2
- package/dist/types-ts4.5/ui/toolbar/alt-text.d.ts +1 -0
- package/dist/types-ts4.5/ui/toolbar/index.d.ts +1 -0
- package/dist/types-ts4.5/ui/toolbar/pixel-resizing.d.ts +1 -1
- package/package.json +8 -5
|
@@ -2,11 +2,11 @@ import React from 'react';
|
|
|
2
2
|
import { Clipboard } from '@atlaskit/media-picker';
|
|
3
3
|
import PickerFacadeProvider from './PickerFacadeProvider';
|
|
4
4
|
export var ClipboardWrapper = function ClipboardWrapper(_ref) {
|
|
5
|
-
var
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
var api = _ref.api,
|
|
6
|
+
container = _ref.container,
|
|
7
|
+
featureFlags = _ref.featureFlags;
|
|
8
8
|
return /*#__PURE__*/React.createElement(PickerFacadeProvider, {
|
|
9
|
-
|
|
9
|
+
api: api,
|
|
10
10
|
analyticsName: "clipboard"
|
|
11
11
|
}, function (_ref2) {
|
|
12
12
|
var mediaClientConfig = _ref2.mediaClientConfig,
|
|
@@ -2,45 +2,86 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
|
2
2
|
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; }
|
|
3
3
|
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; }
|
|
4
4
|
import React from 'react';
|
|
5
|
+
import { sharedPluginStateHookMigratorFactory, useSharedPluginState } from '@atlaskit/editor-common/hooks';
|
|
5
6
|
import { findOverflowScrollParent } from '@atlaskit/editor-common/ui';
|
|
7
|
+
import { useSharedPluginStateSelector } from '@atlaskit/editor-common/use-shared-plugin-state-selector';
|
|
6
8
|
import { Dropzone } from '@atlaskit/media-picker';
|
|
7
9
|
import PickerFacadeProvider from './PickerFacadeProvider';
|
|
8
|
-
|
|
9
|
-
var
|
|
10
|
+
var useSharedState = sharedPluginStateHookMigratorFactory(function (api) {
|
|
11
|
+
var options = useSharedPluginStateSelector(api, 'media.options');
|
|
12
|
+
var handleDrag = useSharedPluginStateSelector(api, 'media.handleDrag');
|
|
13
|
+
return {
|
|
14
|
+
options: options,
|
|
15
|
+
handleDrag: handleDrag
|
|
16
|
+
};
|
|
17
|
+
}, function (api) {
|
|
18
|
+
var _useSharedPluginState = useSharedPluginState(api, ['media']),
|
|
19
|
+
mediaState = _useSharedPluginState.mediaState;
|
|
20
|
+
return {
|
|
21
|
+
options: mediaState === null || mediaState === void 0 ? void 0 : mediaState.options,
|
|
22
|
+
handleDrag: mediaState === null || mediaState === void 0 ? void 0 : mediaState.handleDrag
|
|
23
|
+
};
|
|
24
|
+
});
|
|
25
|
+
var DropzoneWrapperInternal = function DropzoneWrapperInternal(_ref) {
|
|
26
|
+
var api = _ref.api,
|
|
10
27
|
isActive = _ref.isActive,
|
|
11
28
|
featureFlags = _ref.featureFlags,
|
|
12
29
|
editorDomElement = _ref.editorDomElement,
|
|
13
|
-
appearance = _ref.appearance
|
|
30
|
+
appearance = _ref.appearance,
|
|
31
|
+
mediaClientConfig = _ref.mediaClientConfig,
|
|
32
|
+
config = _ref.config,
|
|
33
|
+
pickerFacadeInstance = _ref.pickerFacadeInstance;
|
|
34
|
+
var _useSharedState = useSharedState(api),
|
|
35
|
+
options = _useSharedState.options,
|
|
36
|
+
handleDrag = _useSharedState.handleDrag;
|
|
37
|
+
var _ref2 = options || {},
|
|
38
|
+
customDropzoneContainer = _ref2.customDropzoneContainer;
|
|
39
|
+
|
|
40
|
+
// Ignored via go/ees005
|
|
41
|
+
// eslint-disable-next-line @atlaskit/editor/no-as-casting
|
|
42
|
+
var editorHtmlElement = editorDomElement;
|
|
43
|
+
var scrollParent = appearance === 'full-page' && findOverflowScrollParent(editorHtmlElement);
|
|
44
|
+
var container = customDropzoneContainer || (scrollParent ? scrollParent : editorHtmlElement);
|
|
45
|
+
var dropzoneConfig = _objectSpread(_objectSpread({}, config), {}, {
|
|
46
|
+
container: container
|
|
47
|
+
});
|
|
48
|
+
return isActive ? /*#__PURE__*/React.createElement(Dropzone, {
|
|
49
|
+
mediaClientConfig: mediaClientConfig,
|
|
50
|
+
config: dropzoneConfig,
|
|
51
|
+
onError: pickerFacadeInstance.handleUploadError,
|
|
52
|
+
onPreviewUpdate: pickerFacadeInstance.handleUploadPreviewUpdate,
|
|
53
|
+
onEnd: pickerFacadeInstance.handleReady,
|
|
54
|
+
onDragEnter: function onDragEnter() {
|
|
55
|
+
return handleDrag === null || handleDrag === void 0 ? void 0 : handleDrag('enter');
|
|
56
|
+
},
|
|
57
|
+
onDragLeave: function onDragLeave() {
|
|
58
|
+
return handleDrag === null || handleDrag === void 0 ? void 0 : handleDrag('leave');
|
|
59
|
+
},
|
|
60
|
+
featureFlags: featureFlags
|
|
61
|
+
}) : null;
|
|
62
|
+
};
|
|
63
|
+
export var DropzoneWrapper = function DropzoneWrapper(_ref3) {
|
|
64
|
+
var api = _ref3.api,
|
|
65
|
+
isActive = _ref3.isActive,
|
|
66
|
+
featureFlags = _ref3.featureFlags,
|
|
67
|
+
editorDomElement = _ref3.editorDomElement,
|
|
68
|
+
appearance = _ref3.appearance;
|
|
14
69
|
return /*#__PURE__*/React.createElement(PickerFacadeProvider, {
|
|
15
|
-
|
|
70
|
+
api: api,
|
|
16
71
|
analyticsName: "dropzone"
|
|
17
|
-
}, function (
|
|
18
|
-
var mediaClientConfig =
|
|
19
|
-
config =
|
|
20
|
-
pickerFacadeInstance =
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
var container = customDropzoneContainer || (scrollParent ? scrollParent : editorHtmlElement);
|
|
28
|
-
var dropzoneConfig = _objectSpread(_objectSpread({}, config), {}, {
|
|
29
|
-
container: container
|
|
30
|
-
});
|
|
31
|
-
return isActive ? /*#__PURE__*/React.createElement(Dropzone, {
|
|
72
|
+
}, function (_ref4) {
|
|
73
|
+
var mediaClientConfig = _ref4.mediaClientConfig,
|
|
74
|
+
config = _ref4.config,
|
|
75
|
+
pickerFacadeInstance = _ref4.pickerFacadeInstance;
|
|
76
|
+
return /*#__PURE__*/React.createElement(DropzoneWrapperInternal, {
|
|
77
|
+
api: api,
|
|
78
|
+
isActive: isActive,
|
|
79
|
+
featureFlags: featureFlags,
|
|
80
|
+
editorDomElement: editorDomElement,
|
|
81
|
+
appearance: appearance,
|
|
32
82
|
mediaClientConfig: mediaClientConfig,
|
|
33
|
-
config:
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
onEnd: pickerFacadeInstance.handleReady,
|
|
37
|
-
onDragEnter: function onDragEnter() {
|
|
38
|
-
return handleDrag('enter');
|
|
39
|
-
},
|
|
40
|
-
onDragLeave: function onDragLeave() {
|
|
41
|
-
return handleDrag('leave');
|
|
42
|
-
},
|
|
43
|
-
featureFlags: featureFlags
|
|
44
|
-
}) : null;
|
|
83
|
+
config: config,
|
|
84
|
+
pickerFacadeInstance: pickerFacadeInstance
|
|
85
|
+
});
|
|
45
86
|
});
|
|
46
87
|
};
|
|
@@ -3,6 +3,8 @@ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
|
3
3
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
4
4
|
import { useCallback, useEffect, useMemo, useState } from 'react';
|
|
5
5
|
import { flushSync } from 'react-dom';
|
|
6
|
+
import { sharedPluginStateHookMigratorFactory, useSharedPluginState } from '@atlaskit/editor-common/hooks';
|
|
7
|
+
import { useSharedPluginStateSelector } from '@atlaskit/editor-common/use-shared-plugin-state-selector';
|
|
6
8
|
import { ErrorReporter } from '@atlaskit/editor-common/utils';
|
|
7
9
|
import PickerFacade from '../../pm-plugins/picker-facade';
|
|
8
10
|
var dummyMediaPickerObject = {
|
|
@@ -12,8 +14,32 @@ var dummyMediaPickerObject = {
|
|
|
12
14
|
destroy: function destroy() {},
|
|
13
15
|
setUploadParams: function setUploadParams() {}
|
|
14
16
|
};
|
|
17
|
+
var useSharedState = sharedPluginStateHookMigratorFactory(function (api) {
|
|
18
|
+
var mediaProvider = useSharedPluginStateSelector(api, 'media.mediaProvider');
|
|
19
|
+
var mediaOptions = useSharedPluginStateSelector(api, 'media.mediaOptions');
|
|
20
|
+
var insertFile = useSharedPluginStateSelector(api, 'media.insertFile');
|
|
21
|
+
var options = useSharedPluginStateSelector(api, 'media.options');
|
|
22
|
+
return {
|
|
23
|
+
mediaProvider: mediaProvider,
|
|
24
|
+
mediaOptions: mediaOptions,
|
|
25
|
+
insertFile: insertFile,
|
|
26
|
+
options: options
|
|
27
|
+
};
|
|
28
|
+
}, function (api) {
|
|
29
|
+
var _useSharedPluginState = useSharedPluginState(api, ['media']),
|
|
30
|
+
mediaState = _useSharedPluginState.mediaState;
|
|
31
|
+
var mediaProvider = useMemo(function () {
|
|
32
|
+
return mediaState === null || mediaState === void 0 ? void 0 : mediaState.mediaProvider;
|
|
33
|
+
}, [mediaState === null || mediaState === void 0 ? void 0 : mediaState.mediaProvider]);
|
|
34
|
+
return {
|
|
35
|
+
mediaProvider: mediaProvider,
|
|
36
|
+
mediaOptions: mediaState === null || mediaState === void 0 ? void 0 : mediaState.mediaOptions,
|
|
37
|
+
insertFile: mediaState === null || mediaState === void 0 ? void 0 : mediaState.insertFile,
|
|
38
|
+
options: mediaState === null || mediaState === void 0 ? void 0 : mediaState.options
|
|
39
|
+
};
|
|
40
|
+
});
|
|
15
41
|
export default function PickerFacadeProvider(_ref) {
|
|
16
|
-
var
|
|
42
|
+
var api = _ref.api,
|
|
17
43
|
analyticsName = _ref.analyticsName,
|
|
18
44
|
children = _ref.children;
|
|
19
45
|
var _useState = useState({
|
|
@@ -24,9 +50,11 @@ export default function PickerFacadeProvider(_ref) {
|
|
|
24
50
|
_useState2 = _slicedToArray(_useState, 2),
|
|
25
51
|
state = _useState2[0],
|
|
26
52
|
setState = _useState2[1];
|
|
27
|
-
var
|
|
28
|
-
|
|
29
|
-
|
|
53
|
+
var _useSharedState = useSharedState(api),
|
|
54
|
+
mediaProvider = _useSharedState.mediaProvider,
|
|
55
|
+
mediaOptions = _useSharedState.mediaOptions,
|
|
56
|
+
insertFile = _useSharedState.insertFile,
|
|
57
|
+
options = _useSharedState.options;
|
|
30
58
|
var handleMediaProvider = useCallback( /*#__PURE__*/function () {
|
|
31
59
|
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_name, provider) {
|
|
32
60
|
var mediaProvider, resolvedMediaClientConfig, pickerFacadeConfig, pickerFacadeInstance, config;
|
|
@@ -37,7 +65,7 @@ export default function PickerFacadeProvider(_ref) {
|
|
|
37
65
|
return provider;
|
|
38
66
|
case 2:
|
|
39
67
|
mediaProvider = _context.sent;
|
|
40
|
-
if (!(!mediaProvider || !mediaProvider.uploadParams)) {
|
|
68
|
+
if (!(!mediaProvider || !mediaProvider.uploadParams || !insertFile)) {
|
|
41
69
|
_context.next = 5;
|
|
42
70
|
break;
|
|
43
71
|
}
|
|
@@ -65,14 +93,14 @@ export default function PickerFacadeProvider(_ref) {
|
|
|
65
93
|
case 15:
|
|
66
94
|
pickerFacadeConfig = {
|
|
67
95
|
mediaClientConfig: resolvedMediaClientConfig,
|
|
68
|
-
errorReporter:
|
|
69
|
-
featureFlags:
|
|
96
|
+
errorReporter: (options === null || options === void 0 ? void 0 : options.errorReporter) || new ErrorReporter(),
|
|
97
|
+
featureFlags: mediaOptions && mediaOptions.featureFlags
|
|
70
98
|
};
|
|
71
99
|
_context.next = 18;
|
|
72
100
|
return new PickerFacade('customMediaPicker', pickerFacadeConfig, dummyMediaPickerObject, analyticsName).init();
|
|
73
101
|
case 18:
|
|
74
102
|
pickerFacadeInstance = _context.sent;
|
|
75
|
-
pickerFacadeInstance.onNewMedia(
|
|
103
|
+
pickerFacadeInstance.onNewMedia(insertFile);
|
|
76
104
|
pickerFacadeInstance.setUploadParams(mediaProvider.uploadParams);
|
|
77
105
|
config = {
|
|
78
106
|
uploadParams: mediaProvider.uploadParams
|
|
@@ -93,7 +121,7 @@ export default function PickerFacadeProvider(_ref) {
|
|
|
93
121
|
return function (_x, _x2) {
|
|
94
122
|
return _ref2.apply(this, arguments);
|
|
95
123
|
};
|
|
96
|
-
}(), [analyticsName,
|
|
124
|
+
}(), [analyticsName, insertFile, mediaOptions, options === null || options === void 0 ? void 0 : options.errorReporter]);
|
|
97
125
|
useEffect(function () {
|
|
98
126
|
if (mediaProvider) {
|
|
99
127
|
handleMediaProvider('mediaProvider', Promise.resolve(mediaProvider));
|
|
@@ -7,34 +7,43 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
|
7
7
|
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
8
8
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
9
9
|
import React from 'react';
|
|
10
|
-
import { useSharedPluginState } from '@atlaskit/editor-common/hooks';
|
|
10
|
+
import { sharedPluginStateHookMigratorFactory, useSharedPluginState } from '@atlaskit/editor-common/hooks';
|
|
11
11
|
import { useSharedPluginStateSelector } from '@atlaskit/editor-common/use-shared-plugin-state-selector';
|
|
12
|
-
import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
|
|
13
12
|
import { BrowserWrapper } from './BrowserWrapper';
|
|
14
13
|
import { ClipboardWrapper } from './ClipboardWrapper';
|
|
15
14
|
import { DropzoneWrapper } from './DropzoneWrapper';
|
|
15
|
+
var useMediaPickerState = sharedPluginStateHookMigratorFactory(function (api) {
|
|
16
|
+
var hasFocus = useSharedPluginStateSelector(api, 'focus.hasFocus');
|
|
17
|
+
var connectivityMode = useSharedPluginStateSelector(api, 'connectivity.mode');
|
|
18
|
+
var mediaOptions = useSharedPluginStateSelector(api, 'media.mediaOptions');
|
|
19
|
+
return {
|
|
20
|
+
hasFocus: hasFocus,
|
|
21
|
+
connectivityMode: connectivityMode,
|
|
22
|
+
mediaOptions: mediaOptions
|
|
23
|
+
};
|
|
24
|
+
}, function (api) {
|
|
25
|
+
var _useSharedPluginState = useSharedPluginState(api, ['focus', 'connectivity', 'media']),
|
|
26
|
+
focusState = _useSharedPluginState.focusState,
|
|
27
|
+
connectivityState = _useSharedPluginState.connectivityState,
|
|
28
|
+
mediaState = _useSharedPluginState.mediaState;
|
|
29
|
+
return {
|
|
30
|
+
hasFocus: focusState === null || focusState === void 0 ? void 0 : focusState.hasFocus,
|
|
31
|
+
connectivityMode: connectivityState === null || connectivityState === void 0 ? void 0 : connectivityState.mode,
|
|
32
|
+
mediaOptions: mediaState === null || mediaState === void 0 ? void 0 : mediaState.mediaOptions
|
|
33
|
+
};
|
|
34
|
+
});
|
|
16
35
|
var MediaPicker = function MediaPicker(_ref) {
|
|
17
36
|
var _editorDom$parentElem;
|
|
18
37
|
var api = _ref.api,
|
|
19
38
|
isPopupOpened = _ref.isPopupOpened,
|
|
20
39
|
appearance = _ref.appearance,
|
|
21
|
-
mediaState = _ref.mediaState,
|
|
22
40
|
onBrowseFn = _ref.onBrowseFn,
|
|
23
41
|
editorDomElement = _ref.editorDomElement;
|
|
24
|
-
var
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
var hasFocusSelector = useSharedPluginStateSelector(api, 'focus.hasFocus', {
|
|
30
|
-
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
31
|
-
});
|
|
32
|
-
var connectivityModeSelector = useSharedPluginStateSelector(api, 'connectivity.mode', {
|
|
33
|
-
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
34
|
-
});
|
|
35
|
-
var hasFocus = editorExperiment('platform_editor_usesharedpluginstateselector', true) ? hasFocusSelector : focusState === null || focusState === void 0 ? void 0 : focusState.hasFocus;
|
|
36
|
-
var connectivityMode = editorExperiment('platform_editor_usesharedpluginstateselector', true) ? connectivityModeSelector : connectivityState === null || connectivityState === void 0 ? void 0 : connectivityState.mode;
|
|
37
|
-
var featureFlags = mediaState.mediaOptions && mediaState.mediaOptions.featureFlags;
|
|
42
|
+
var _useMediaPickerState = useMediaPickerState(api),
|
|
43
|
+
hasFocus = _useMediaPickerState.hasFocus,
|
|
44
|
+
connectivityMode = _useMediaPickerState.connectivityMode,
|
|
45
|
+
mediaOptions = _useMediaPickerState.mediaOptions;
|
|
46
|
+
var featureFlags = mediaOptions && mediaOptions.featureFlags;
|
|
38
47
|
|
|
39
48
|
// Ignored via go/ees005
|
|
40
49
|
// eslint-disable-next-line @atlaskit/editor/no-as-casting
|
|
@@ -49,12 +58,12 @@ var MediaPicker = function MediaPicker(_ref) {
|
|
|
49
58
|
*/
|
|
50
59
|
var container = editorParent;
|
|
51
60
|
var clipboard = hasFocus ? /*#__PURE__*/React.createElement(ClipboardWrapper, {
|
|
52
|
-
|
|
61
|
+
api: api,
|
|
53
62
|
featureFlags: featureFlags,
|
|
54
63
|
container: container
|
|
55
64
|
}) : null;
|
|
56
65
|
return /*#__PURE__*/React.createElement(React.Fragment, null, clipboard, /*#__PURE__*/React.createElement(DropzoneWrapper, {
|
|
57
|
-
|
|
66
|
+
api: api,
|
|
58
67
|
isActive: !isPopupOpened &&
|
|
59
68
|
// If we're offline don't show the dropzone
|
|
60
69
|
connectivityMode !== 'offline',
|
|
@@ -62,8 +71,8 @@ var MediaPicker = function MediaPicker(_ref) {
|
|
|
62
71
|
editorDomElement: editorDomElement,
|
|
63
72
|
appearance: appearance
|
|
64
73
|
}), /*#__PURE__*/React.createElement(BrowserWrapper, {
|
|
74
|
+
api: api,
|
|
65
75
|
onBrowseFn: onBrowseFn,
|
|
66
|
-
mediaState: mediaState,
|
|
67
76
|
featureFlags: featureFlags
|
|
68
77
|
}));
|
|
69
78
|
};
|
|
@@ -81,8 +90,8 @@ export var MediaPickerComponents = /*#__PURE__*/function (_React$Component) {
|
|
|
81
90
|
isPopupOpened: false
|
|
82
91
|
});
|
|
83
92
|
_defineProperty(_this, "onBrowseFn", function (nativeBrowseFn) {
|
|
84
|
-
var
|
|
85
|
-
|
|
93
|
+
var setBrowseFn = _this.props.setBrowseFn;
|
|
94
|
+
setBrowseFn(nativeBrowseFn);
|
|
86
95
|
});
|
|
87
96
|
return _this;
|
|
88
97
|
}
|
|
@@ -91,8 +100,8 @@ export var MediaPickerComponents = /*#__PURE__*/function (_React$Component) {
|
|
|
91
100
|
key: "componentDidMount",
|
|
92
101
|
value: function componentDidMount() {
|
|
93
102
|
var _this2 = this;
|
|
94
|
-
var
|
|
95
|
-
|
|
103
|
+
var onPopupToggle = this.props.onPopupToggle;
|
|
104
|
+
onPopupToggle(function (isPopupOpened) {
|
|
96
105
|
_this2.setState({
|
|
97
106
|
isPopupOpened: isPopupOpened
|
|
98
107
|
});
|
|
@@ -103,12 +112,10 @@ export var MediaPickerComponents = /*#__PURE__*/function (_React$Component) {
|
|
|
103
112
|
value: function render() {
|
|
104
113
|
var _this$props = this.props,
|
|
105
114
|
api = _this$props.api,
|
|
106
|
-
mediaState = _this$props.mediaState,
|
|
107
115
|
editorDomElement = _this$props.editorDomElement,
|
|
108
116
|
appearance = _this$props.appearance;
|
|
109
117
|
var isPopupOpened = this.state.isPopupOpened;
|
|
110
118
|
return /*#__PURE__*/React.createElement(MediaPicker, {
|
|
111
|
-
mediaState: mediaState,
|
|
112
119
|
editorDomElement: editorDomElement,
|
|
113
120
|
appearance: appearance,
|
|
114
121
|
isPopupOpened: isPopupOpened,
|
|
@@ -1,34 +1,39 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { injectIntl } from 'react-intl-next';
|
|
3
|
-
import { useSharedPluginState } from '@atlaskit/editor-common/hooks';
|
|
3
|
+
import { sharedPluginStateHookMigratorFactory, useSharedPluginState } from '@atlaskit/editor-common/hooks';
|
|
4
4
|
import { toolbarMediaMessages } from '@atlaskit/editor-common/media';
|
|
5
5
|
import { TOOLBAR_BUTTON, ToolbarButton } from '@atlaskit/editor-common/ui-menu';
|
|
6
6
|
import { useSharedPluginStateSelector } from '@atlaskit/editor-common/use-shared-plugin-state-selector';
|
|
7
7
|
import AttachmentIcon from '@atlaskit/icon/core/migration/attachment--editor-attachment';
|
|
8
|
-
import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
|
|
9
8
|
var onClickMediaButton = function onClickMediaButton(showMediaPicker) {
|
|
10
9
|
return function () {
|
|
11
10
|
showMediaPicker();
|
|
12
11
|
return true;
|
|
13
12
|
};
|
|
14
13
|
};
|
|
14
|
+
var useSharedState = sharedPluginStateHookMigratorFactory(function (api) {
|
|
15
|
+
var allowsUploads = useSharedPluginStateSelector(api, 'media.allowsUploads');
|
|
16
|
+
var showMediaPicker = useSharedPluginStateSelector(api, 'media.showMediaPicker');
|
|
17
|
+
return {
|
|
18
|
+
allowsUploads: allowsUploads,
|
|
19
|
+
showMediaPicker: showMediaPicker
|
|
20
|
+
};
|
|
21
|
+
}, function (api) {
|
|
22
|
+
var _useSharedPluginState = useSharedPluginState(api, ['media']),
|
|
23
|
+
mediaState = _useSharedPluginState.mediaState;
|
|
24
|
+
return {
|
|
25
|
+
allowsUploads: mediaState === null || mediaState === void 0 ? void 0 : mediaState.allowsUploads,
|
|
26
|
+
showMediaPicker: mediaState === null || mediaState === void 0 ? void 0 : mediaState.showMediaPicker
|
|
27
|
+
};
|
|
28
|
+
});
|
|
15
29
|
var ToolbarMedia = function ToolbarMedia(_ref) {
|
|
16
30
|
var isDisabled = _ref.isDisabled,
|
|
17
31
|
isReducedSpacing = _ref.isReducedSpacing,
|
|
18
32
|
intl = _ref.intl,
|
|
19
33
|
api = _ref.api;
|
|
20
|
-
var
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
mediaState = _useSharedPluginState.mediaState;
|
|
24
|
-
var allowsUploadsSelector = useSharedPluginStateSelector(api, 'media.allowsUploads', {
|
|
25
|
-
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
26
|
-
});
|
|
27
|
-
var showMediaPickerSelector = useSharedPluginStateSelector(api, 'media.showMediaPicker', {
|
|
28
|
-
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
29
|
-
});
|
|
30
|
-
var allowsUploads = editorExperiment('platform_editor_usesharedpluginstateselector', true) ? allowsUploadsSelector : mediaState === null || mediaState === void 0 ? void 0 : mediaState.allowsUploads;
|
|
31
|
-
var showMediaPicker = editorExperiment('platform_editor_usesharedpluginstateselector', true) ? showMediaPickerSelector : mediaState === null || mediaState === void 0 ? void 0 : mediaState.showMediaPicker;
|
|
34
|
+
var _useSharedState = useSharedState(api),
|
|
35
|
+
allowsUploads = _useSharedState.allowsUploads,
|
|
36
|
+
showMediaPicker = _useSharedState.showMediaPicker;
|
|
32
37
|
if (!allowsUploads || !showMediaPicker) {
|
|
33
38
|
return null;
|
|
34
39
|
}
|
|
@@ -1,16 +1,21 @@
|
|
|
1
1
|
import { useMemo } from 'react';
|
|
2
|
-
import { useSharedPluginState } from '@atlaskit/editor-common/hooks';
|
|
2
|
+
import { sharedPluginStateHookMigratorFactory, useSharedPluginState } from '@atlaskit/editor-common/hooks';
|
|
3
3
|
import { useSharedPluginStateSelector } from '@atlaskit/editor-common/use-shared-plugin-state-selector';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
var useSharedState = sharedPluginStateHookMigratorFactory(function (pluginInjectionApi) {
|
|
5
|
+
var mediaProvider = useSharedPluginStateSelector(pluginInjectionApi, 'media.mediaProvider');
|
|
6
|
+
return {
|
|
7
|
+
mediaProvider: mediaProvider
|
|
8
|
+
};
|
|
9
|
+
}, function (pluginInjectionApi) {
|
|
10
|
+
var _useSharedPluginState = useSharedPluginState(pluginInjectionApi, ['media']),
|
|
9
11
|
mediaState = _useSharedPluginState.mediaState;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}
|
|
13
|
-
|
|
12
|
+
return {
|
|
13
|
+
mediaProvider: mediaState === null || mediaState === void 0 ? void 0 : mediaState.mediaProvider
|
|
14
|
+
};
|
|
15
|
+
});
|
|
16
|
+
export var useMediaProvider = function useMediaProvider(pluginInjectionApi) {
|
|
17
|
+
var _useSharedState = useSharedState(pluginInjectionApi),
|
|
18
|
+
mediaProvider = _useSharedState.mediaProvider;
|
|
14
19
|
var provider = useMemo(function () {
|
|
15
20
|
return mediaProvider;
|
|
16
21
|
}, [mediaProvider]);
|
|
@@ -8,6 +8,8 @@ import { MediaSharedClassNames as ClassNames } from '@atlaskit/editor-common/sty
|
|
|
8
8
|
import { RECENT_SEARCH_WIDTH_IN_PX as CONTAINER_WIDTH_IN_PX } from '@atlaskit/editor-common/ui';
|
|
9
9
|
import { NodeSelection } from '@atlaskit/editor-prosemirror/state';
|
|
10
10
|
import TextIcon from '@atlaskit/icon/core/text';
|
|
11
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
12
|
+
import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
|
|
11
13
|
import { openMediaAltTextMenu } from '../../pm-plugins/alt-text/commands';
|
|
12
14
|
import AltTextEdit from '../../pm-plugins/alt-text/ui/AltTextEdit';
|
|
13
15
|
import { isImage } from '../../pm-plugins/utils/is-type';
|
|
@@ -48,11 +50,12 @@ var altTextEditComponent = function altTextEditComponent(options) {
|
|
|
48
50
|
/** Focus should move to the 'Alt text' button when the toolbar closes
|
|
49
51
|
* and not close the floating toolbar.
|
|
50
52
|
*/
|
|
51
|
-
var
|
|
53
|
+
var setFocus = function setFocus() {
|
|
52
54
|
var _options$forceFocusSe;
|
|
53
55
|
var tr = view.state.tr,
|
|
54
56
|
dispatch = view.dispatch;
|
|
55
|
-
var
|
|
57
|
+
var elementSelector = options !== null && options !== void 0 && options.triggerButtonSelector && editorExperiment('platform_editor_controls', 'variant1') && fg('platform_editor_controls_patch_8') ? options.triggerButtonSelector : "[data-testid=\"".concat(testId, "\"]");
|
|
58
|
+
var newTr = options === null || options === void 0 || (_options$forceFocusSe = options.forceFocusSelector) === null || _options$forceFocusSe === void 0 ? void 0 : _options$forceFocusSe.call(options, elementSelector)(tr);
|
|
56
59
|
if (newTr) {
|
|
57
60
|
dispatch(newTr);
|
|
58
61
|
}
|
|
@@ -65,7 +68,8 @@ var altTextEditComponent = function altTextEditComponent(options) {
|
|
|
65
68
|
mediaType: mediaNode.attrs.type,
|
|
66
69
|
value: mediaNode.attrs.alt,
|
|
67
70
|
altTextValidator: options && options.altTextValidator,
|
|
68
|
-
onEscape:
|
|
71
|
+
onEscape: setFocus,
|
|
72
|
+
onEnter: setFocus
|
|
69
73
|
});
|
|
70
74
|
}
|
|
71
75
|
};
|
|
@@ -738,6 +738,7 @@ var getMediaTypeMessage = function getMediaTypeMessage(selectedNodeTypeSingle) {
|
|
|
738
738
|
});
|
|
739
739
|
return mediaType ? mediaTypeMessages[mediaType] : messages.file_unknown_is_selected;
|
|
740
740
|
};
|
|
741
|
+
export var overflowDropdwonBtnTriggerTestId = 'media-overflow-dropdown-trigger';
|
|
741
742
|
export var floatingToolbar = function floatingToolbar(state, intl) {
|
|
742
743
|
var _pluginInjectionApi$d3, _pluginInjectionApi$d4;
|
|
743
744
|
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
@@ -783,13 +784,18 @@ export var floatingToolbar = function floatingToolbar(state, intl) {
|
|
|
783
784
|
return linkingToolbar;
|
|
784
785
|
}
|
|
785
786
|
}
|
|
787
|
+
|
|
788
|
+
// testId is required to show focus on trigger button on ESC key press
|
|
789
|
+
// see hideOnEsc in platform/packages/editor/editor-plugin-floating-toolbar/src/ui/Dropdown.tsx
|
|
790
|
+
var overflowButtonSelector = editorExperiment('platform_editor_controls', 'variant1') && fg('platform_editor_controls_patch_8') ? "[data-testid=\"".concat(overflowDropdwonBtnTriggerTestId, "\"]") : undefined;
|
|
786
791
|
if (allowAltTextOnImages) {
|
|
787
792
|
var mediaAltTextPluginState = getMediaAltTextPluginState(state);
|
|
788
793
|
if (mediaAltTextPluginState.isAltTextEditorOpen) {
|
|
789
794
|
var _pluginInjectionApi$f;
|
|
790
795
|
return getAltTextToolbar(baseToolbar, {
|
|
791
796
|
altTextValidator: altTextValidator,
|
|
792
|
-
forceFocusSelector: pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$f = pluginInjectionApi.floatingToolbar) === null || _pluginInjectionApi$f === void 0 || (_pluginInjectionApi$f = _pluginInjectionApi$f.actions) === null || _pluginInjectionApi$f === void 0 ? void 0 : _pluginInjectionApi$f.forceFocusSelector
|
|
797
|
+
forceFocusSelector: pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$f = pluginInjectionApi.floatingToolbar) === null || _pluginInjectionApi$f === void 0 || (_pluginInjectionApi$f = _pluginInjectionApi$f.actions) === null || _pluginInjectionApi$f === void 0 ? void 0 : _pluginInjectionApi$f.forceFocusSelector,
|
|
798
|
+
triggerButtonSelector: overflowButtonSelector
|
|
793
799
|
});
|
|
794
800
|
}
|
|
795
801
|
}
|
|
@@ -803,7 +809,8 @@ export var floatingToolbar = function floatingToolbar(state, intl) {
|
|
|
803
809
|
pluginInjectionApi: pluginInjectionApi,
|
|
804
810
|
pluginState: mediaPluginState,
|
|
805
811
|
hoverDecoration: hoverDecoration,
|
|
806
|
-
isEditorFullWidthEnabled: options.fullWidthEnabled
|
|
812
|
+
isEditorFullWidthEnabled: options.fullWidthEnabled,
|
|
813
|
+
triggerButtonSelector: overflowButtonSelector
|
|
807
814
|
});
|
|
808
815
|
}
|
|
809
816
|
}
|
|
@@ -856,6 +863,7 @@ export var floatingToolbar = function floatingToolbar(state, intl) {
|
|
|
856
863
|
items.push({
|
|
857
864
|
type: 'overflow-dropdown',
|
|
858
865
|
id: 'media',
|
|
866
|
+
testId: overflowDropdwonBtnTriggerTestId,
|
|
859
867
|
options: [].concat(_toConsumableArray(customOptions), [_objectSpread({
|
|
860
868
|
title: intl === null || intl === void 0 ? void 0 : intl.formatMessage(commonMessages.copyToClipboard),
|
|
861
869
|
onClick: function onClick() {
|
|
@@ -9,11 +9,13 @@ import { RECENT_SEARCH_HEIGHT_IN_PX, RECENT_SEARCH_WIDTH_IN_PX } from '@atlaskit
|
|
|
9
9
|
import LinkIcon from '@atlaskit/icon/core/link';
|
|
10
10
|
import LinkExternalIcon from '@atlaskit/icon/core/link-external';
|
|
11
11
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
12
|
+
import { editorExperiment } from '@atlaskit/tmp-editor-statsig/experiments';
|
|
12
13
|
import { hideLinkingToolbar, setUrlToMedia, showLinkingToolbar, unlink } from '../../pm-plugins/commands/linking';
|
|
13
14
|
import { getMediaLinkingState } from '../../pm-plugins/linking';
|
|
14
15
|
import { currentMediaInlineNode, currentMediaNode } from '../../pm-plugins/utils/current-media-node';
|
|
15
16
|
import MediaLinkingToolbar from '../../ui/MediaLinkingToolbar';
|
|
16
17
|
var FORCE_FOCUS_SELECTOR = '[data-testid="add-link-button"],[data-testid="edit-link-button"]';
|
|
18
|
+
var FORCE_FOCUS_SELECTOR_EDITOR_CONTROLS = '[data-testid="media-overflow-dropdown-trigger"]';
|
|
17
19
|
export function shouldShowMediaLinkToolbar(editorState) {
|
|
18
20
|
var mediaLinkingState = getMediaLinkingState(editorState);
|
|
19
21
|
if (!mediaLinkingState || mediaLinkingState.mediaPos === null) {
|
|
@@ -52,38 +54,51 @@ export var getLinkingToolbar = function getLinkingToolbar(toolbarBaseConfig, med
|
|
|
52
54
|
if (!view || !providerFactory) {
|
|
53
55
|
return null;
|
|
54
56
|
}
|
|
57
|
+
var setFocusOnFloatingToolbar = function setFocusOnFloatingToolbar(setFocus) {
|
|
58
|
+
if (setFocus && editorExperiment('platform_editor_controls', 'variant1') && fg('platform_editor_controls_patch_8')) {
|
|
59
|
+
var _pluginInjectionApi$f;
|
|
60
|
+
var tr = view.state.tr,
|
|
61
|
+
dispatch = view.dispatch;
|
|
62
|
+
pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$f = pluginInjectionApi.floatingToolbar) === null || _pluginInjectionApi$f === void 0 || (_pluginInjectionApi$f = _pluginInjectionApi$f.actions) === null || _pluginInjectionApi$f === void 0 || _pluginInjectionApi$f.forceFocusSelector(FORCE_FOCUS_SELECTOR_EDITOR_CONTROLS)(tr);
|
|
63
|
+
dispatch(tr);
|
|
64
|
+
}
|
|
65
|
+
};
|
|
55
66
|
return /*#__PURE__*/React.createElement(MediaLinkingToolbar, {
|
|
56
67
|
key: idx,
|
|
57
68
|
displayUrl: link,
|
|
58
69
|
providerFactory: providerFactory,
|
|
59
70
|
intl: intl,
|
|
60
71
|
editing: editing,
|
|
61
|
-
onUnlink: function onUnlink() {
|
|
72
|
+
onUnlink: function onUnlink(setFocus) {
|
|
62
73
|
var _pluginInjectionApi$a;
|
|
63
|
-
|
|
74
|
+
unlink(pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$a = pluginInjectionApi.analytics) === null || _pluginInjectionApi$a === void 0 ? void 0 : _pluginInjectionApi$a.actions)(view.state, view.dispatch, view);
|
|
75
|
+
setFocusOnFloatingToolbar(setFocus);
|
|
64
76
|
},
|
|
65
|
-
onBack: function onBack(href, meta) {
|
|
77
|
+
onBack: function onBack(href, meta, setFocus) {
|
|
66
78
|
if (href.trim() && meta.inputMethod) {
|
|
67
79
|
var _pluginInjectionApi$a2;
|
|
68
80
|
setUrlToMedia(href, meta.inputMethod, pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$a2 = pluginInjectionApi.analytics) === null || _pluginInjectionApi$a2 === void 0 ? void 0 : _pluginInjectionApi$a2.actions)(view.state, view.dispatch, view);
|
|
69
81
|
}
|
|
70
82
|
hideLinkingToolbar(view.state, view.dispatch, view);
|
|
83
|
+
setFocusOnFloatingToolbar(setFocus);
|
|
71
84
|
},
|
|
72
85
|
onCancel: function onCancel() {
|
|
73
|
-
var _pluginInjectionApi$
|
|
86
|
+
var _pluginInjectionApi$f2;
|
|
74
87
|
hideLinkingToolbar(view.state, view.dispatch, view, true);
|
|
75
88
|
/** Focus should move to the 'Add link' button when the toolbar closes
|
|
76
89
|
* and not close the floating toolbar.
|
|
77
90
|
*/
|
|
78
91
|
var tr = view.state.tr,
|
|
79
92
|
dispatch = view.dispatch;
|
|
80
|
-
|
|
93
|
+
var selector = editorExperiment('platform_editor_controls', 'variant1') && fg('platform_editor_controls_patch_8') ? FORCE_FOCUS_SELECTOR_EDITOR_CONTROLS : FORCE_FOCUS_SELECTOR;
|
|
94
|
+
pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$f2 = pluginInjectionApi.floatingToolbar) === null || _pluginInjectionApi$f2 === void 0 || (_pluginInjectionApi$f2 = _pluginInjectionApi$f2.actions) === null || _pluginInjectionApi$f2 === void 0 || _pluginInjectionApi$f2.forceFocusSelector(selector)(tr);
|
|
81
95
|
dispatch(tr);
|
|
82
96
|
},
|
|
83
97
|
onSubmit: function onSubmit(href, meta) {
|
|
84
98
|
var _pluginInjectionApi$a3;
|
|
85
99
|
setUrlToMedia(href, meta.inputMethod, pluginInjectionApi === null || pluginInjectionApi === void 0 || (_pluginInjectionApi$a3 = pluginInjectionApi.analytics) === null || _pluginInjectionApi$a3 === void 0 ? void 0 : _pluginInjectionApi$a3.actions)(view.state, view.dispatch, view);
|
|
86
100
|
hideLinkingToolbar(view.state, view.dispatch, view);
|
|
101
|
+
setFocusOnFloatingToolbar(true);
|
|
87
102
|
},
|
|
88
103
|
onBlur: function onBlur() {
|
|
89
104
|
hideLinkingToolbar(view.state, view.dispatch, view);
|
|
@@ -16,7 +16,8 @@ export var getPixelResizingToolbar = function getPixelResizingToolbar(toolbarBas
|
|
|
16
16
|
intl = _ref.intl,
|
|
17
17
|
pluginState = _ref.pluginState,
|
|
18
18
|
hoverDecoration = _ref.hoverDecoration,
|
|
19
|
-
isEditorFullWidthEnabled = _ref.isEditorFullWidthEnabled
|
|
19
|
+
isEditorFullWidthEnabled = _ref.isEditorFullWidthEnabled,
|
|
20
|
+
triggerButtonSelector = _ref.triggerButtonSelector;
|
|
20
21
|
return _objectSpread(_objectSpread({}, toolbarBaseConfig), {}, {
|
|
21
22
|
width: PIXEL_RESIZING_TOOLBAR_WIDTH,
|
|
22
23
|
scrollable: true,
|
|
@@ -38,7 +39,8 @@ export var getPixelResizingToolbar = function getPixelResizingToolbar(toolbarBas
|
|
|
38
39
|
pluginInjectionApi: pluginInjectionApi,
|
|
39
40
|
pluginState: pluginState,
|
|
40
41
|
hoverDecoration: hoverDecoration,
|
|
41
|
-
isEditorFullWidthEnabled: isEditorFullWidthEnabled
|
|
42
|
+
isEditorFullWidthEnabled: isEditorFullWidthEnabled,
|
|
43
|
+
triggerButtonSelector: triggerButtonSelector
|
|
42
44
|
});
|
|
43
45
|
}
|
|
44
46
|
}]
|
|
@@ -11,6 +11,7 @@ type Props = {
|
|
|
11
11
|
value?: string;
|
|
12
12
|
altTextValidator?: (value: string) => string[];
|
|
13
13
|
onEscape?: () => void;
|
|
14
|
+
onEnter?: () => void;
|
|
14
15
|
} & WrappedComponentProps & WithAnalyticsEventsProps;
|
|
15
16
|
export type AltTextEditComponentState = {
|
|
16
17
|
showClearTextButton: boolean;
|
|
@@ -32,6 +33,7 @@ export declare class AltTextEditComponent extends React.Component<Props, AltText
|
|
|
32
33
|
private getValidationErrors;
|
|
33
34
|
render(): jsx.JSX.Element;
|
|
34
35
|
private closeMediaAltTextMenu;
|
|
36
|
+
private closeMediaAltTextMenuAndSetFocus;
|
|
35
37
|
private fireAnalytics;
|
|
36
38
|
private dispatchCancelEvent;
|
|
37
39
|
private handleOnChange;
|
|
@@ -14,8 +14,9 @@ export type Props = {
|
|
|
14
14
|
pluginState: MediaPluginState;
|
|
15
15
|
hoverDecoration: HoverDecorationHandler | undefined;
|
|
16
16
|
isEditorFullWidthEnabled?: boolean;
|
|
17
|
+
triggerButtonSelector?: string;
|
|
17
18
|
};
|
|
18
|
-
export declare const PixelEntry: ({ editorView, selectedMediaSingleNode, pluginInjectionApi, intl, pluginState, hoverDecoration, isEditorFullWidthEnabled, }: Props) => jsx.JSX.Element | null;
|
|
19
|
+
export declare const PixelEntry: ({ editorView, selectedMediaSingleNode, pluginInjectionApi, intl, pluginState, hoverDecoration, isEditorFullWidthEnabled, triggerButtonSelector, }: Props) => jsx.JSX.Element | null;
|
|
19
20
|
export declare const FullWidthDisplay: ({ intl: { formatMessage } }: {
|
|
20
21
|
intl: IntlShape;
|
|
21
22
|
}) => jsx.JSX.Element;
|