@atlaskit/editor-plugin-media 1.10.1 → 1.12.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 +21 -0
- package/dist/cjs/nodeviews/mediaInline.js +27 -15
- package/dist/cjs/nodeviews/mediaSingle.js +21 -8
- package/dist/cjs/toolbar/comments.js +7 -4
- package/dist/cjs/toolbar/filePreviewItem.js +5 -26
- package/dist/cjs/toolbar/utils.js +4 -2
- package/dist/cjs/ui/MediaViewer/MediaViewerContainer.js +66 -0
- package/dist/cjs/ui/MediaViewer/PortalWrapper.js +30 -0
- package/dist/es2019/nodeviews/mediaInline.js +27 -11
- package/dist/es2019/nodeviews/mediaSingle.js +21 -8
- package/dist/es2019/toolbar/comments.js +7 -4
- package/dist/es2019/toolbar/filePreviewItem.js +1 -24
- package/dist/es2019/toolbar/utils.js +4 -2
- package/dist/es2019/ui/MediaViewer/MediaViewerContainer.js +49 -0
- package/dist/es2019/ui/MediaViewer/PortalWrapper.js +25 -0
- package/dist/esm/nodeviews/mediaInline.js +27 -11
- package/dist/esm/nodeviews/mediaSingle.js +21 -8
- package/dist/esm/toolbar/comments.js +7 -4
- package/dist/esm/toolbar/filePreviewItem.js +4 -25
- package/dist/esm/toolbar/utils.js +4 -2
- package/dist/esm/ui/MediaViewer/MediaViewerContainer.js +55 -0
- package/dist/esm/ui/MediaViewer/PortalWrapper.js +23 -0
- package/dist/types/next-plugin-type.d.ts +2 -0
- package/dist/types/nodeviews/mediaInline.d.ts +4 -3
- package/dist/types/nodeviews/mediaSingle.d.ts +1 -2
- package/dist/types/nodeviews/types.d.ts +2 -0
- package/dist/types/toolbar/comments.d.ts +1 -1
- package/dist/types/ui/MediaViewer/MediaViewerContainer.d.ts +16 -0
- package/dist/types/ui/MediaViewer/PortalWrapper.d.ts +10 -0
- package/dist/types/ui/ResizableMediaSingle/types.d.ts +1 -0
- package/dist/types-ts4.5/next-plugin-type.d.ts +2 -0
- package/dist/types-ts4.5/nodeviews/mediaInline.d.ts +4 -3
- package/dist/types-ts4.5/nodeviews/mediaSingle.d.ts +1 -2
- package/dist/types-ts4.5/nodeviews/types.d.ts +2 -0
- package/dist/types-ts4.5/toolbar/comments.d.ts +1 -1
- package/dist/types-ts4.5/ui/MediaViewer/MediaViewerContainer.d.ts +16 -0
- package/dist/types-ts4.5/ui/MediaViewer/PortalWrapper.d.ts +10 -0
- package/dist/types-ts4.5/ui/ResizableMediaSingle/types.d.ts +1 -0
- package/package.json +7 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
# @atlaskit/editor-plugin-media
|
|
2
2
|
|
|
3
|
+
## 1.12.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#82581](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/82581) [`c1be75ae15b6`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/c1be75ae15b6) - ED-22606 add toggle inline comment action
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- [#81777](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/81777) [`c6d7a5378751`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/c6d7a5378751) - Bump adf-schema to 35.7.0
|
|
12
|
+
- Updated dependencies
|
|
13
|
+
|
|
14
|
+
## 1.11.0
|
|
15
|
+
|
|
16
|
+
### Minor Changes
|
|
17
|
+
|
|
18
|
+
- [#80438](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/80438) [`cf8860dbf719`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/cf8860dbf719) - [ux] Add media viewer previews to inline media and media single images when Editor is in view mode
|
|
19
|
+
|
|
20
|
+
### Patch Changes
|
|
21
|
+
|
|
22
|
+
- Updated dependencies
|
|
23
|
+
|
|
3
24
|
## 1.10.1
|
|
4
25
|
|
|
5
26
|
### Patch Changes
|
|
@@ -1,7 +1,6 @@
|
|
|
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
|
});
|
|
@@ -16,7 +15,8 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
|
|
|
16
15
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
17
16
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
18
17
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
19
|
-
var _react =
|
|
18
|
+
var _react = require("react");
|
|
19
|
+
var _react2 = require("@emotion/react");
|
|
20
20
|
var _hooks = require("@atlaskit/editor-common/hooks");
|
|
21
21
|
var _mediaInline = require("@atlaskit/editor-common/media-inline");
|
|
22
22
|
var _providerFactory = require("@atlaskit/editor-common/provider-factory");
|
|
@@ -24,15 +24,14 @@ var _selectionBasedNodeView = require("@atlaskit/editor-common/selection-based-n
|
|
|
24
24
|
var _mediaCard = require("@atlaskit/media-card");
|
|
25
25
|
var _mediaClientReact = require("@atlaskit/media-client-react");
|
|
26
26
|
var _mediaUi = require("@atlaskit/media-ui");
|
|
27
|
+
var _MediaViewerContainer = require("../ui/MediaViewer/MediaViewerContainer");
|
|
27
28
|
var _isType = require("../utils/is-type");
|
|
28
29
|
var _mediaNodeUpdater = require("./mediaNodeUpdater");
|
|
29
30
|
var _styles = require("./styles");
|
|
30
|
-
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); }
|
|
31
|
-
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 && Object.prototype.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; }
|
|
32
31
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
33
32
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
34
33
|
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; }
|
|
35
|
-
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; }
|
|
34
|
+
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; } /** @jsx jsx */
|
|
36
35
|
var createMediaNodeUpdater = exports.createMediaNodeUpdater = function createMediaNodeUpdater(props) {
|
|
37
36
|
var node = props.node;
|
|
38
37
|
return new _mediaNodeUpdater.MediaNodeUpdater(_objectSpread(_objectSpread({}, props), {}, {
|
|
@@ -180,7 +179,7 @@ var MediaInline = exports.MediaInline = function MediaInline(props) {
|
|
|
180
179
|
* before the prerequisites meet
|
|
181
180
|
*/
|
|
182
181
|
if (!viewMediaClientConfig || isContextIdUnsync) {
|
|
183
|
-
return
|
|
182
|
+
return (0, _react2.jsx)(_mediaUi.MediaInlineCardLoadingView, {
|
|
184
183
|
message: "",
|
|
185
184
|
isSelected: false
|
|
186
185
|
});
|
|
@@ -190,7 +189,13 @@ var MediaInline = exports.MediaInline = function MediaInline(props) {
|
|
|
190
189
|
return mark.type.name === 'border';
|
|
191
190
|
});
|
|
192
191
|
if (allowInlineImages && (0, _isType.isImage)(type)) {
|
|
193
|
-
return
|
|
192
|
+
return (0, _react2.jsx)(_MediaViewerContainer.MediaViewerContainer, {
|
|
193
|
+
mediaNode: props.node,
|
|
194
|
+
mediaPluginState: props.mediaPluginState,
|
|
195
|
+
isEditorViewMode: props.editorViewMode,
|
|
196
|
+
isSelected: props.isSelected,
|
|
197
|
+
isInline: true
|
|
198
|
+
}, (0, _react2.jsx)(_mediaInline.MediaInlineImageCard, {
|
|
194
199
|
mediaClient: (0, _mediaClientReact.getMediaClient)(viewMediaClientConfig),
|
|
195
200
|
identifier: identifier,
|
|
196
201
|
isSelected: props.isSelected,
|
|
@@ -201,13 +206,18 @@ var MediaInline = exports.MediaInline = function MediaInline(props) {
|
|
|
201
206
|
borderSize: borderMark === null || borderMark === void 0 ? void 0 : borderMark.attrs.size,
|
|
202
207
|
borderColor: borderMark === null || borderMark === void 0 ? void 0 : borderMark.attrs.color
|
|
203
208
|
}
|
|
204
|
-
});
|
|
209
|
+
}));
|
|
205
210
|
}
|
|
206
|
-
return
|
|
211
|
+
return (0, _react2.jsx)(_MediaViewerContainer.MediaViewerContainer, {
|
|
212
|
+
mediaNode: props.node,
|
|
213
|
+
mediaPluginState: props.mediaPluginState,
|
|
214
|
+
isEditorViewMode: props.editorViewMode,
|
|
215
|
+
isSelected: props.isSelected
|
|
216
|
+
}, (0, _react2.jsx)(_mediaCard.MediaInlineCard, {
|
|
207
217
|
isSelected: props.isSelected,
|
|
208
218
|
identifier: identifier,
|
|
209
219
|
mediaClientConfig: viewMediaClientConfig
|
|
210
|
-
});
|
|
220
|
+
}));
|
|
211
221
|
};
|
|
212
222
|
var MediaInlineSharedState = function MediaInlineSharedState(_ref3) {
|
|
213
223
|
var identifier = _ref3.identifier,
|
|
@@ -218,12 +228,13 @@ var MediaInlineSharedState = function MediaInlineSharedState(_ref3) {
|
|
|
218
228
|
contextIdentifierProvider = _ref3.contextIdentifierProvider,
|
|
219
229
|
api = _ref3.api,
|
|
220
230
|
view = _ref3.view;
|
|
221
|
-
var _useSharedPluginState = (0, _hooks.useSharedPluginState)(api, ['media']),
|
|
231
|
+
var _useSharedPluginState = (0, _hooks.useSharedPluginState)(api, ['editorViewMode', 'media']),
|
|
232
|
+
editorViewModeState = _useSharedPluginState.editorViewModeState,
|
|
222
233
|
mediaState = _useSharedPluginState.mediaState;
|
|
223
234
|
if (!mediaState) {
|
|
224
235
|
return null;
|
|
225
236
|
}
|
|
226
|
-
return
|
|
237
|
+
return (0, _react2.jsx)(MediaInline, {
|
|
227
238
|
identifier: identifier,
|
|
228
239
|
mediaProvider: mediaProvider,
|
|
229
240
|
mediaPluginState: mediaState,
|
|
@@ -231,7 +242,8 @@ var MediaInlineSharedState = function MediaInlineSharedState(_ref3) {
|
|
|
231
242
|
isSelected: isSelected,
|
|
232
243
|
view: view,
|
|
233
244
|
getPos: getPos,
|
|
234
|
-
contextIdentifierProvider: contextIdentifierProvider
|
|
245
|
+
contextIdentifierProvider: contextIdentifierProvider,
|
|
246
|
+
editorViewMode: (editorViewModeState === null || editorViewModeState === void 0 ? void 0 : editorViewModeState.mode) === 'view'
|
|
235
247
|
});
|
|
236
248
|
};
|
|
237
249
|
var MediaInlineNodeView = exports.MediaInlineNodeView = /*#__PURE__*/function (_SelectionBasedNodeVi) {
|
|
@@ -278,7 +290,7 @@ var MediaInlineNodeView = exports.MediaInlineNodeView = /*#__PURE__*/function (_
|
|
|
278
290
|
api = props.api;
|
|
279
291
|
var view = this.view;
|
|
280
292
|
var getPos = this.getPos;
|
|
281
|
-
return
|
|
293
|
+
return (0, _react2.jsx)(_providerFactory.WithProviders, {
|
|
282
294
|
providers: ['mediaProvider', 'contextIdentifierProvider'],
|
|
283
295
|
providerFactory: providerFactory,
|
|
284
296
|
renderNode: function renderNode(_ref4) {
|
|
@@ -287,7 +299,7 @@ var MediaInlineNodeView = exports.MediaInlineNodeView = /*#__PURE__*/function (_
|
|
|
287
299
|
if (!mediaProvider) {
|
|
288
300
|
return null;
|
|
289
301
|
}
|
|
290
|
-
return
|
|
302
|
+
return (0, _react2.jsx)(MediaInlineSharedState, {
|
|
291
303
|
identifier: _this.node.attrs.id,
|
|
292
304
|
mediaProvider: mediaProvider,
|
|
293
305
|
node: _this.node,
|
|
@@ -33,6 +33,7 @@ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
|
33
33
|
var _captions = require("../commands/captions");
|
|
34
34
|
var _main = require("../pm-plugins/main");
|
|
35
35
|
var _CaptionPlaceholder = _interopRequireDefault(require("../ui/CaptionPlaceholder"));
|
|
36
|
+
var _MediaViewerContainer = require("../ui/MediaViewer/MediaViewerContainer");
|
|
36
37
|
var _ResizableMediaSingle = _interopRequireDefault(require("../ui/ResizableMediaSingle"));
|
|
37
38
|
var _ResizableMediaSingleNext = _interopRequireDefault(require("../ui/ResizableMediaSingle/ResizableMediaSingleNext"));
|
|
38
39
|
var _mediaCommon = require("../utils/media-common");
|
|
@@ -237,10 +238,10 @@ var MediaSingleNode = exports.default = /*#__PURE__*/function (_Component) {
|
|
|
237
238
|
tr.setSelection(_state.NodeSelection.create(tr.doc, pos));
|
|
238
239
|
return dispatch(tr);
|
|
239
240
|
});
|
|
240
|
-
// Workaround for iOS 16 Caption selection issue
|
|
241
|
-
// @see https://product-fabric.atlassian.net/browse/MEX-2012
|
|
242
241
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onMediaSingleClicked", function (event) {
|
|
243
242
|
var _this$captionPlaceHol;
|
|
243
|
+
// Workaround for iOS 16 Caption selection issue
|
|
244
|
+
// @see https://product-fabric.atlassian.net/browse/MEX-2012
|
|
244
245
|
if (!_utils.browser.ios) {
|
|
245
246
|
return;
|
|
246
247
|
}
|
|
@@ -339,7 +340,9 @@ var MediaSingleNode = exports.default = /*#__PURE__*/function (_Component) {
|
|
|
339
340
|
pluginInjectionApi = _this$props2.pluginInjectionApi,
|
|
340
341
|
containerWidth = _this$props2.width,
|
|
341
342
|
lineLength = _this$props2.lineLength,
|
|
342
|
-
dispatchAnalyticsEvent = _this$props2.dispatchAnalyticsEvent
|
|
343
|
+
dispatchAnalyticsEvent = _this$props2.dispatchAnalyticsEvent,
|
|
344
|
+
editorViewMode = _this$props2.editorViewMode,
|
|
345
|
+
mediaPluginState = _this$props2.mediaPluginState;
|
|
343
346
|
var _ref4 = node.attrs,
|
|
344
347
|
layout = _ref4.layout,
|
|
345
348
|
widthType = _ref4.widthType,
|
|
@@ -433,14 +436,20 @@ var MediaSingleNode = exports.default = /*#__PURE__*/function (_Component) {
|
|
|
433
436
|
ref: this.captionPlaceHolderRef,
|
|
434
437
|
onClick: this.clickPlaceholder
|
|
435
438
|
}));
|
|
436
|
-
return
|
|
439
|
+
return (0, _react2.jsx)(_MediaViewerContainer.MediaViewerContainer, {
|
|
440
|
+
mediaPluginState: mediaPluginState,
|
|
441
|
+
isEditorViewMode: editorViewMode,
|
|
442
|
+
mediaNode: node,
|
|
443
|
+
isSelected: isSelected,
|
|
444
|
+
isInline: false
|
|
445
|
+
}, canResize ? (0, _platformFeatureFlags.getBooleanFF)('platform.editor.media.extended-resize-experience') ? (0, _react2.jsx)(_ResizableMediaSingleNext.default, (0, _extends2.default)({}, resizableMediaSingleProps, {
|
|
437
446
|
showLegacyNotification: widthType !== 'pixel'
|
|
438
447
|
}), MediaChildren) : (0, _react2.jsx)(_ResizableMediaSingle.default, (0, _extends2.default)({}, resizableMediaSingleProps, {
|
|
439
448
|
lineLength: contentWidthForLegacyExperience,
|
|
440
449
|
pctWidth: mediaSingleWidthAttribute
|
|
441
450
|
}), MediaChildren) : (0, _react2.jsx)(_ui.MediaSingle, (0, _extends2.default)({}, mediaSingleProps, {
|
|
442
451
|
pctWidth: mediaSingleWidthAttribute
|
|
443
|
-
}), MediaChildren);
|
|
452
|
+
}), MediaChildren));
|
|
444
453
|
}
|
|
445
454
|
}]);
|
|
446
455
|
return MediaSingleNode;
|
|
@@ -462,10 +471,12 @@ var MediaSingleNodeWrapper = function MediaSingleNodeWrapper(_ref5) {
|
|
|
462
471
|
eventDispatcher = _ref5.eventDispatcher,
|
|
463
472
|
dispatchAnalyticsEvent = _ref5.dispatchAnalyticsEvent,
|
|
464
473
|
forwardRef = _ref5.forwardRef;
|
|
465
|
-
var _useSharedPluginState = (0, _hooks.useSharedPluginState)(pluginInjectionApi, ['width', 'media', 'annotation']),
|
|
474
|
+
var _useSharedPluginState = (0, _hooks.useSharedPluginState)(pluginInjectionApi, ['width', 'media', 'annotation', 'editorDisabled', 'editorViewMode']),
|
|
466
475
|
widthState = _useSharedPluginState.widthState,
|
|
467
476
|
mediaState = _useSharedPluginState.mediaState,
|
|
468
|
-
annotationState = _useSharedPluginState.annotationState
|
|
477
|
+
annotationState = _useSharedPluginState.annotationState,
|
|
478
|
+
editorDisabledState = _useSharedPluginState.editorDisabledState,
|
|
479
|
+
editorViewModeState = _useSharedPluginState.editorViewModeState;
|
|
469
480
|
return (0, _react2.jsx)(MediaSingleNode, {
|
|
470
481
|
width: widthState.width,
|
|
471
482
|
lineLength: widthState.lineLength,
|
|
@@ -482,7 +493,9 @@ var MediaSingleNodeWrapper = function MediaSingleNodeWrapper(_ref5) {
|
|
|
482
493
|
annotationPluginState: annotationState !== null && annotationState !== void 0 ? annotationState : undefined,
|
|
483
494
|
dispatchAnalyticsEvent: dispatchAnalyticsEvent,
|
|
484
495
|
forwardRef: forwardRef,
|
|
485
|
-
pluginInjectionApi: pluginInjectionApi
|
|
496
|
+
pluginInjectionApi: pluginInjectionApi,
|
|
497
|
+
editorDisabled: editorDisabledState === null || editorDisabledState === void 0 ? void 0 : editorDisabledState.editorDisabled,
|
|
498
|
+
editorViewMode: (editorViewModeState === null || editorViewModeState === void 0 ? void 0 : editorViewModeState.mode) === 'view'
|
|
486
499
|
});
|
|
487
500
|
};
|
|
488
501
|
var MediaSingleNodeView = /*#__PURE__*/function (_ReactNodeView) {
|
|
@@ -9,14 +9,17 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
9
9
|
var _analytics = require("@atlaskit/editor-common/analytics");
|
|
10
10
|
var _keymaps = require("@atlaskit/editor-common/keymaps");
|
|
11
11
|
var _media = require("@atlaskit/editor-common/media");
|
|
12
|
+
var _state2 = require("@atlaskit/editor-prosemirror/state");
|
|
12
13
|
var _comment = _interopRequireDefault(require("@atlaskit/icon/glyph/comment"));
|
|
13
|
-
var commentButton = exports.commentButton = function commentButton(intl,
|
|
14
|
+
var commentButton = exports.commentButton = function commentButton(intl, _state, api) {
|
|
14
15
|
var title = intl.formatMessage(_media.commentMessages.addCommentOnMedia);
|
|
15
16
|
var onClickHandler = function onClickHandler(state, dispatch) {
|
|
16
|
-
if (api && api.annotation) {
|
|
17
|
-
|
|
17
|
+
if (api !== null && api !== void 0 && api.annotation && state.selection instanceof _state2.NodeSelection) {
|
|
18
|
+
var mediaNode = state.selection.node.firstChild;
|
|
19
|
+
var command = api.annotation.actions.showCommentForBlockNode(mediaNode) || api.annotation.actions.setInlineCommentDraftState(true,
|
|
18
20
|
// TODO: might need to update to reflect it's from media floating toolbar
|
|
19
|
-
_analytics.INPUT_METHOD.FLOATING_TB, 'block', true)
|
|
21
|
+
_analytics.INPUT_METHOD.FLOATING_TB, 'block', true);
|
|
22
|
+
command(state, dispatch);
|
|
20
23
|
}
|
|
21
24
|
return true;
|
|
22
25
|
};
|
|
@@ -8,37 +8,16 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
8
8
|
exports.FilePreviewItem = void 0;
|
|
9
9
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
10
|
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
-
var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
12
11
|
var _ui = require("@atlaskit/editor-common/ui");
|
|
13
12
|
var _filePreview = _interopRequireDefault(require("@atlaskit/icon/glyph/editor/file-preview"));
|
|
14
13
|
var _mediaUi = require("@atlaskit/media-ui");
|
|
15
|
-
var
|
|
14
|
+
var _PortalWrapper = require("../ui/MediaViewer/PortalWrapper");
|
|
16
15
|
var _utils = require("./utils");
|
|
17
16
|
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); }
|
|
18
17
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.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; }
|
|
19
|
-
var
|
|
20
|
-
var
|
|
21
|
-
|
|
22
|
-
selectedNodeAttrs = _ref.selectedNodeAttrs;
|
|
23
|
-
var id = selectedNodeAttrs.id,
|
|
24
|
-
_selectedNodeAttrs$co = selectedNodeAttrs.collection,
|
|
25
|
-
collection = _selectedNodeAttrs$co === void 0 ? '' : _selectedNodeAttrs$co;
|
|
26
|
-
var identifier = {
|
|
27
|
-
id: id,
|
|
28
|
-
mediaItemType: 'file',
|
|
29
|
-
collectionName: collection
|
|
30
|
-
};
|
|
31
|
-
return /*#__PURE__*/_reactDom.default.createPortal( /*#__PURE__*/_react.default.createElement(_mediaViewer.MediaViewer, {
|
|
32
|
-
collectionName: collection,
|
|
33
|
-
items: [],
|
|
34
|
-
mediaClientConfig: mediaClientConfig,
|
|
35
|
-
selectedItem: identifier,
|
|
36
|
-
onClose: onClose
|
|
37
|
-
}), document.body);
|
|
38
|
-
};
|
|
39
|
-
var FilePreviewItem = exports.FilePreviewItem = function FilePreviewItem(_ref2) {
|
|
40
|
-
var mediaPluginState = _ref2.mediaPluginState,
|
|
41
|
-
intl = _ref2.intl;
|
|
18
|
+
var FilePreviewItem = exports.FilePreviewItem = function FilePreviewItem(_ref) {
|
|
19
|
+
var mediaPluginState = _ref.mediaPluginState,
|
|
20
|
+
intl = _ref.intl;
|
|
42
21
|
var _useState = (0, _react.useState)(false),
|
|
43
22
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
44
23
|
isMediaViewerVisible = _useState2[0],
|
|
@@ -60,7 +39,7 @@ var FilePreviewItem = exports.FilePreviewItem = function FilePreviewItem(_ref2)
|
|
|
60
39
|
label: "file preview"
|
|
61
40
|
}),
|
|
62
41
|
tooltipContent: tooltipContent
|
|
63
|
-
}), shouldRenderMediaViewer && /*#__PURE__*/_react.default.createElement(RenderMediaViewer, {
|
|
42
|
+
}), shouldRenderMediaViewer && /*#__PURE__*/_react.default.createElement(_PortalWrapper.RenderMediaViewer, {
|
|
64
43
|
mediaClientConfig: mediaPluginState.mediaClientConfig,
|
|
65
44
|
onClose: onMediaViewerClose,
|
|
66
45
|
selectedNodeAttrs: selectedNodeAttrs
|
|
@@ -15,14 +15,16 @@ var _editorSharedStyles = require("@atlaskit/editor-shared-styles");
|
|
|
15
15
|
var _mediaClientReact = require("@atlaskit/media-client-react");
|
|
16
16
|
var _mediaSingle2 = require("../utils/media-single");
|
|
17
17
|
var getSelectedMediaContainerNodeAttrs = exports.getSelectedMediaContainerNodeAttrs = function getSelectedMediaContainerNodeAttrs(mediaPluginState) {
|
|
18
|
-
var
|
|
18
|
+
var _mediaPluginState$sel;
|
|
19
|
+
var selectedNode = (_mediaPluginState$sel = mediaPluginState.selectedMediaContainerNode) === null || _mediaPluginState$sel === void 0 ? void 0 : _mediaPluginState$sel.call(mediaPluginState);
|
|
19
20
|
if (selectedNode && selectedNode.attrs) {
|
|
20
21
|
return selectedNode.attrs;
|
|
21
22
|
}
|
|
22
23
|
return null;
|
|
23
24
|
};
|
|
24
25
|
var getSelectedNearestMediaContainerNodeAttrs = exports.getSelectedNearestMediaContainerNodeAttrs = function getSelectedNearestMediaContainerNodeAttrs(mediaPluginState) {
|
|
25
|
-
var
|
|
26
|
+
var _mediaPluginState$sel2;
|
|
27
|
+
var selectedNode = (_mediaPluginState$sel2 = mediaPluginState.selectedMediaContainerNode) === null || _mediaPluginState$sel2 === void 0 ? void 0 : _mediaPluginState$sel2.call(mediaPluginState);
|
|
26
28
|
if (selectedNode) {
|
|
27
29
|
switch (selectedNode.type.name) {
|
|
28
30
|
case 'mediaSingle':
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.mediaViewerContainerTestID = exports.MediaViewerContainer = void 0;
|
|
9
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _react2 = require("@emotion/react");
|
|
12
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
13
|
+
var _utils = require("../../toolbar/utils");
|
|
14
|
+
var _isType = require("../../utils/is-type");
|
|
15
|
+
var _PortalWrapper = require("./PortalWrapper");
|
|
16
|
+
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); }
|
|
17
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
18
|
+
/** @jsx jsx */
|
|
19
|
+
|
|
20
|
+
var interactiveStyles = (0, _react2.css)({
|
|
21
|
+
cursor: 'pointer'
|
|
22
|
+
});
|
|
23
|
+
var mediaViewerContainerTestID = exports.mediaViewerContainerTestID = 'media-viewer-container-test';
|
|
24
|
+
var MediaViewerContainer = exports.MediaViewerContainer = function MediaViewerContainer(_ref) {
|
|
25
|
+
var _mediaNode$firstChild;
|
|
26
|
+
var mediaNode = _ref.mediaNode,
|
|
27
|
+
mediaPluginState = _ref.mediaPluginState,
|
|
28
|
+
_ref$isEditorViewMode = _ref.isEditorViewMode,
|
|
29
|
+
isEditorViewMode = _ref$isEditorViewMode === void 0 ? false : _ref$isEditorViewMode,
|
|
30
|
+
_ref$isSelected = _ref.isSelected,
|
|
31
|
+
isSelected = _ref$isSelected === void 0 ? true : _ref$isSelected,
|
|
32
|
+
_ref$isInline = _ref.isInline,
|
|
33
|
+
isInline = _ref$isInline === void 0 ? false : _ref$isInline,
|
|
34
|
+
children = _ref.children;
|
|
35
|
+
var _useState = (0, _react.useState)(false),
|
|
36
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
37
|
+
showViewer = _useState2[0],
|
|
38
|
+
setShowMediaViewer = _useState2[1];
|
|
39
|
+
(0, _react.useEffect)(function () {
|
|
40
|
+
setShowMediaViewer(isSelected);
|
|
41
|
+
}, [isSelected]);
|
|
42
|
+
var selectedNodeAttrs = (0, _utils.getSelectedNearestMediaContainerNodeAttrs)(mediaPluginState);
|
|
43
|
+
var mediaClientConfig = mediaPluginState.mediaClientConfig;
|
|
44
|
+
var showMediaViewer = function showMediaViewer() {
|
|
45
|
+
setShowMediaViewer(true);
|
|
46
|
+
};
|
|
47
|
+
var closeMediaViewer = function closeMediaViewer() {
|
|
48
|
+
setShowMediaViewer(false);
|
|
49
|
+
};
|
|
50
|
+
var isVideoMedia = (0, _isType.isVideo)((_mediaNode$firstChild = mediaNode.firstChild) === null || _mediaNode$firstChild === void 0 ? void 0 : _mediaNode$firstChild.attrs.__fileMimeType);
|
|
51
|
+
var enableMediaViewer = (0, _platformFeatureFlags.getBooleanFF)('platform.editor.media.preview-in-full-page') && isEditorViewMode;
|
|
52
|
+
var shouldShowViewer = enableMediaViewer && showViewer && selectedNodeAttrs && mediaClientConfig && !isVideoMedia;
|
|
53
|
+
return (0, _react2.jsx)(_react.Fragment, null, enableMediaViewer ? (0, _react2.jsx)(_react.Fragment, null, isInline ? (0, _react2.jsx)("span", {
|
|
54
|
+
onClick: showMediaViewer,
|
|
55
|
+
css: interactiveStyles,
|
|
56
|
+
"data-testid": mediaViewerContainerTestID
|
|
57
|
+
}, children) : (0, _react2.jsx)("div", {
|
|
58
|
+
onClick: showMediaViewer,
|
|
59
|
+
css: interactiveStyles,
|
|
60
|
+
"data-testid": mediaViewerContainerTestID
|
|
61
|
+
}, children), shouldShowViewer && (0, _react2.jsx)(_PortalWrapper.RenderMediaViewer, {
|
|
62
|
+
selectedNodeAttrs: selectedNodeAttrs,
|
|
63
|
+
mediaClientConfig: mediaClientConfig,
|
|
64
|
+
onClose: closeMediaViewer
|
|
65
|
+
})) : children);
|
|
66
|
+
};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.RenderMediaViewer = void 0;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
10
|
+
var _mediaViewer = require("@atlaskit/media-viewer");
|
|
11
|
+
var RenderMediaViewer = exports.RenderMediaViewer = function RenderMediaViewer(_ref) {
|
|
12
|
+
var mediaClientConfig = _ref.mediaClientConfig,
|
|
13
|
+
onClose = _ref.onClose,
|
|
14
|
+
selectedNodeAttrs = _ref.selectedNodeAttrs;
|
|
15
|
+
var id = selectedNodeAttrs.id,
|
|
16
|
+
_selectedNodeAttrs$co = selectedNodeAttrs.collection,
|
|
17
|
+
collection = _selectedNodeAttrs$co === void 0 ? '' : _selectedNodeAttrs$co;
|
|
18
|
+
var identifier = {
|
|
19
|
+
id: id,
|
|
20
|
+
mediaItemType: 'file',
|
|
21
|
+
collectionName: collection
|
|
22
|
+
};
|
|
23
|
+
return /*#__PURE__*/_reactDom.default.createPortal( /*#__PURE__*/_react.default.createElement(_mediaViewer.MediaViewer, {
|
|
24
|
+
collectionName: collection,
|
|
25
|
+
items: [],
|
|
26
|
+
mediaClientConfig: mediaClientConfig,
|
|
27
|
+
selectedItem: identifier,
|
|
28
|
+
onClose: onClose
|
|
29
|
+
}), document.body);
|
|
30
|
+
};
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
import { useEffect, useState } from 'react';
|
|
3
|
+
import { jsx } from '@emotion/react';
|
|
2
4
|
import { useSharedPluginState } from '@atlaskit/editor-common/hooks';
|
|
3
5
|
import { MediaInlineImageCard } from '@atlaskit/editor-common/media-inline';
|
|
4
6
|
import { WithProviders } from '@atlaskit/editor-common/provider-factory';
|
|
@@ -6,6 +8,7 @@ import { SelectionBasedNodeView } from '@atlaskit/editor-common/selection-based-
|
|
|
6
8
|
import { MediaInlineCard } from '@atlaskit/media-card';
|
|
7
9
|
import { getMediaClient } from '@atlaskit/media-client-react';
|
|
8
10
|
import { MediaInlineCardLoadingView } from '@atlaskit/media-ui';
|
|
11
|
+
import { MediaViewerContainer } from '../ui/MediaViewer/MediaViewerContainer';
|
|
9
12
|
import { isImage } from '../utils/is-type';
|
|
10
13
|
import { MediaNodeUpdater } from './mediaNodeUpdater';
|
|
11
14
|
import { MediaInlineNodeSelector } from './styles';
|
|
@@ -107,7 +110,7 @@ export const MediaInline = props => {
|
|
|
107
110
|
* before the prerequisites meet
|
|
108
111
|
*/
|
|
109
112
|
if (!viewMediaClientConfig || isContextIdUnsync) {
|
|
110
|
-
return
|
|
113
|
+
return jsx(MediaInlineCardLoadingView, {
|
|
111
114
|
message: "",
|
|
112
115
|
isSelected: false
|
|
113
116
|
});
|
|
@@ -117,7 +120,13 @@ export const MediaInline = props => {
|
|
|
117
120
|
} = props.mediaPluginState;
|
|
118
121
|
const borderMark = (_props$node = props.node) === null || _props$node === void 0 ? void 0 : (_props$node$marks = _props$node.marks) === null || _props$node$marks === void 0 ? void 0 : _props$node$marks.find(mark => mark.type.name === 'border');
|
|
119
122
|
if (allowInlineImages && isImage(type)) {
|
|
120
|
-
return
|
|
123
|
+
return jsx(MediaViewerContainer, {
|
|
124
|
+
mediaNode: props.node,
|
|
125
|
+
mediaPluginState: props.mediaPluginState,
|
|
126
|
+
isEditorViewMode: props.editorViewMode,
|
|
127
|
+
isSelected: props.isSelected,
|
|
128
|
+
isInline: true
|
|
129
|
+
}, jsx(MediaInlineImageCard, {
|
|
121
130
|
mediaClient: getMediaClient(viewMediaClientConfig),
|
|
122
131
|
identifier: identifier,
|
|
123
132
|
isSelected: props.isSelected,
|
|
@@ -128,13 +137,18 @@ export const MediaInline = props => {
|
|
|
128
137
|
borderSize: borderMark === null || borderMark === void 0 ? void 0 : borderMark.attrs.size,
|
|
129
138
|
borderColor: borderMark === null || borderMark === void 0 ? void 0 : borderMark.attrs.color
|
|
130
139
|
}
|
|
131
|
-
});
|
|
140
|
+
}));
|
|
132
141
|
}
|
|
133
|
-
return
|
|
142
|
+
return jsx(MediaViewerContainer, {
|
|
143
|
+
mediaNode: props.node,
|
|
144
|
+
mediaPluginState: props.mediaPluginState,
|
|
145
|
+
isEditorViewMode: props.editorViewMode,
|
|
146
|
+
isSelected: props.isSelected
|
|
147
|
+
}, jsx(MediaInlineCard, {
|
|
134
148
|
isSelected: props.isSelected,
|
|
135
149
|
identifier: identifier,
|
|
136
150
|
mediaClientConfig: viewMediaClientConfig
|
|
137
|
-
});
|
|
151
|
+
}));
|
|
138
152
|
};
|
|
139
153
|
const MediaInlineSharedState = ({
|
|
140
154
|
identifier,
|
|
@@ -147,12 +161,13 @@ const MediaInlineSharedState = ({
|
|
|
147
161
|
view
|
|
148
162
|
}) => {
|
|
149
163
|
const {
|
|
164
|
+
editorViewModeState,
|
|
150
165
|
mediaState
|
|
151
|
-
} = useSharedPluginState(api, ['media']);
|
|
166
|
+
} = useSharedPluginState(api, ['editorViewMode', 'media']);
|
|
152
167
|
if (!mediaState) {
|
|
153
168
|
return null;
|
|
154
169
|
}
|
|
155
|
-
return
|
|
170
|
+
return jsx(MediaInline, {
|
|
156
171
|
identifier: identifier,
|
|
157
172
|
mediaProvider: mediaProvider,
|
|
158
173
|
mediaPluginState: mediaState,
|
|
@@ -160,7 +175,8 @@ const MediaInlineSharedState = ({
|
|
|
160
175
|
isSelected: isSelected,
|
|
161
176
|
view: view,
|
|
162
177
|
getPos: getPos,
|
|
163
|
-
contextIdentifierProvider: contextIdentifierProvider
|
|
178
|
+
contextIdentifierProvider: contextIdentifierProvider,
|
|
179
|
+
editorViewMode: (editorViewModeState === null || editorViewModeState === void 0 ? void 0 : editorViewModeState.mode) === 'view'
|
|
164
180
|
});
|
|
165
181
|
};
|
|
166
182
|
export class MediaInlineNodeView extends SelectionBasedNodeView {
|
|
@@ -194,7 +210,7 @@ export class MediaInlineNodeView extends SelectionBasedNodeView {
|
|
|
194
210
|
view
|
|
195
211
|
} = this;
|
|
196
212
|
const getPos = this.getPos;
|
|
197
|
-
return
|
|
213
|
+
return jsx(WithProviders, {
|
|
198
214
|
providers: ['mediaProvider', 'contextIdentifierProvider'],
|
|
199
215
|
providerFactory: providerFactory,
|
|
200
216
|
renderNode: ({
|
|
@@ -204,7 +220,7 @@ export class MediaInlineNodeView extends SelectionBasedNodeView {
|
|
|
204
220
|
if (!mediaProvider) {
|
|
205
221
|
return null;
|
|
206
222
|
}
|
|
207
|
-
return
|
|
223
|
+
return jsx(MediaInlineSharedState, {
|
|
208
224
|
identifier: this.node.attrs.id,
|
|
209
225
|
mediaProvider: mediaProvider,
|
|
210
226
|
node: this.node,
|
|
@@ -18,6 +18,7 @@ import { getBooleanFF } from '@atlaskit/platform-feature-flags';
|
|
|
18
18
|
import { insertAndSelectCaptionFromMediaSinglePos } from '../commands/captions';
|
|
19
19
|
import { MEDIA_CONTENT_WRAP_CLASS_NAME } from '../pm-plugins/main';
|
|
20
20
|
import CaptionPlaceholder from '../ui/CaptionPlaceholder';
|
|
21
|
+
import { MediaViewerContainer } from '../ui/MediaViewer/MediaViewerContainer';
|
|
21
22
|
import ResizableMediaSingle from '../ui/ResizableMediaSingle';
|
|
22
23
|
import ResizableMediaSingleNext from '../ui/ResizableMediaSingle/ResizableMediaSingleNext';
|
|
23
24
|
import { isMediaBlobUrlFromAttrs } from '../utils/media-common';
|
|
@@ -165,10 +166,10 @@ export default class MediaSingleNode extends Component {
|
|
|
165
166
|
tr.setSelection(NodeSelection.create(tr.doc, pos));
|
|
166
167
|
return dispatch(tr);
|
|
167
168
|
});
|
|
168
|
-
// Workaround for iOS 16 Caption selection issue
|
|
169
|
-
// @see https://product-fabric.atlassian.net/browse/MEX-2012
|
|
170
169
|
_defineProperty(this, "onMediaSingleClicked", event => {
|
|
171
170
|
var _this$captionPlaceHol;
|
|
171
|
+
// Workaround for iOS 16 Caption selection issue
|
|
172
|
+
// @see https://product-fabric.atlassian.net/browse/MEX-2012
|
|
172
173
|
if (!browser.ios) {
|
|
173
174
|
return;
|
|
174
175
|
}
|
|
@@ -242,7 +243,9 @@ export default class MediaSingleNode extends Component {
|
|
|
242
243
|
pluginInjectionApi,
|
|
243
244
|
width: containerWidth,
|
|
244
245
|
lineLength,
|
|
245
|
-
dispatchAnalyticsEvent
|
|
246
|
+
dispatchAnalyticsEvent,
|
|
247
|
+
editorViewMode,
|
|
248
|
+
mediaPluginState
|
|
246
249
|
} = this.props;
|
|
247
250
|
const {
|
|
248
251
|
layout,
|
|
@@ -346,14 +349,20 @@ export default class MediaSingleNode extends Component {
|
|
|
346
349
|
ref: this.captionPlaceHolderRef,
|
|
347
350
|
onClick: this.clickPlaceholder
|
|
348
351
|
}));
|
|
349
|
-
return
|
|
352
|
+
return jsx(MediaViewerContainer, {
|
|
353
|
+
mediaPluginState: mediaPluginState,
|
|
354
|
+
isEditorViewMode: editorViewMode,
|
|
355
|
+
mediaNode: node,
|
|
356
|
+
isSelected: isSelected,
|
|
357
|
+
isInline: false
|
|
358
|
+
}, canResize ? getBooleanFF('platform.editor.media.extended-resize-experience') ? jsx(ResizableMediaSingleNext, _extends({}, resizableMediaSingleProps, {
|
|
350
359
|
showLegacyNotification: widthType !== 'pixel'
|
|
351
360
|
}), MediaChildren) : jsx(ResizableMediaSingle, _extends({}, resizableMediaSingleProps, {
|
|
352
361
|
lineLength: contentWidthForLegacyExperience,
|
|
353
362
|
pctWidth: mediaSingleWidthAttribute
|
|
354
363
|
}), MediaChildren) : jsx(MediaSingle, _extends({}, mediaSingleProps, {
|
|
355
364
|
pctWidth: mediaSingleWidthAttribute
|
|
356
|
-
}), MediaChildren);
|
|
365
|
+
}), MediaChildren));
|
|
357
366
|
}
|
|
358
367
|
}
|
|
359
368
|
_defineProperty(MediaSingleNode, "defaultProps", {
|
|
@@ -377,8 +386,10 @@ const MediaSingleNodeWrapper = ({
|
|
|
377
386
|
const {
|
|
378
387
|
widthState,
|
|
379
388
|
mediaState,
|
|
380
|
-
annotationState
|
|
381
|
-
|
|
389
|
+
annotationState,
|
|
390
|
+
editorDisabledState,
|
|
391
|
+
editorViewModeState
|
|
392
|
+
} = useSharedPluginState(pluginInjectionApi, ['width', 'media', 'annotation', 'editorDisabled', 'editorViewMode']);
|
|
382
393
|
return jsx(MediaSingleNode, {
|
|
383
394
|
width: widthState.width,
|
|
384
395
|
lineLength: widthState.lineLength,
|
|
@@ -395,7 +406,9 @@ const MediaSingleNodeWrapper = ({
|
|
|
395
406
|
annotationPluginState: annotationState !== null && annotationState !== void 0 ? annotationState : undefined,
|
|
396
407
|
dispatchAnalyticsEvent: dispatchAnalyticsEvent,
|
|
397
408
|
forwardRef: forwardRef,
|
|
398
|
-
pluginInjectionApi: pluginInjectionApi
|
|
409
|
+
pluginInjectionApi: pluginInjectionApi,
|
|
410
|
+
editorDisabled: editorDisabledState === null || editorDisabledState === void 0 ? void 0 : editorDisabledState.editorDisabled,
|
|
411
|
+
editorViewMode: (editorViewModeState === null || editorViewModeState === void 0 ? void 0 : editorViewModeState.mode) === 'view'
|
|
399
412
|
});
|
|
400
413
|
};
|
|
401
414
|
class MediaSingleNodeView extends ReactNodeView {
|
|
@@ -2,14 +2,17 @@ import React from 'react';
|
|
|
2
2
|
import { INPUT_METHOD } from '@atlaskit/editor-common/analytics';
|
|
3
3
|
import { ToolTipContent } from '@atlaskit/editor-common/keymaps';
|
|
4
4
|
import { commentMessages as messages } from '@atlaskit/editor-common/media';
|
|
5
|
+
import { NodeSelection } from '@atlaskit/editor-prosemirror/state';
|
|
5
6
|
import CommentIcon from '@atlaskit/icon/glyph/comment';
|
|
6
|
-
export const commentButton = (intl,
|
|
7
|
+
export const commentButton = (intl, _state, api) => {
|
|
7
8
|
const title = intl.formatMessage(messages.addCommentOnMedia);
|
|
8
9
|
const onClickHandler = (state, dispatch) => {
|
|
9
|
-
if (api && api.annotation) {
|
|
10
|
-
|
|
10
|
+
if (api !== null && api !== void 0 && api.annotation && state.selection instanceof NodeSelection) {
|
|
11
|
+
const mediaNode = state.selection.node.firstChild;
|
|
12
|
+
const command = api.annotation.actions.showCommentForBlockNode(mediaNode) || api.annotation.actions.setInlineCommentDraftState(true,
|
|
11
13
|
// TODO: might need to update to reflect it's from media floating toolbar
|
|
12
|
-
INPUT_METHOD.FLOATING_TB, 'block', true)
|
|
14
|
+
INPUT_METHOD.FLOATING_TB, 'block', true);
|
|
15
|
+
command(state, dispatch);
|
|
13
16
|
}
|
|
14
17
|
return true;
|
|
15
18
|
};
|