@atlaskit/editor-plugin-media 2.7.0 → 2.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +24 -0
- package/dist/cjs/mediaPlugin.js +21 -6
- package/dist/cjs/nodeviews/mediaGroup.js +21 -6
- package/dist/cjs/nodeviews/mediaInline.js +55 -13
- package/dist/cjs/nodeviews/mediaNodeView/index.js +11 -3
- package/dist/cjs/nodeviews/mediaSingle.js +87 -48
- package/dist/cjs/nodeviews/mediaSingleNext.js +5 -4
- package/dist/cjs/pm-plugins/utils/media-files.js +64 -6
- package/dist/cjs/ui/CommentBadge/index.js +44 -14
- package/dist/cjs/ui/ImageBorder/styles.js +1 -2
- package/dist/cjs/ui/MediaPicker/index.js +15 -3
- package/dist/cjs/ui/MediaViewer/MediaViewerContainer.js +3 -3
- package/dist/cjs/ui/ResizableMediaSingle/ResizableMediaSingleNext.js +2 -1
- package/dist/cjs/ui/ToolbarMedia/index.js +17 -5
- package/dist/cjs/ui/hooks/useMediaProvider.js +11 -3
- package/dist/cjs/ui/toolbar/utils.js +6 -4
- package/dist/es2019/mediaPlugin.js +21 -6
- package/dist/es2019/nodeviews/mediaGroup.js +21 -6
- package/dist/es2019/nodeviews/mediaInline.js +54 -12
- package/dist/es2019/nodeviews/mediaNodeView/index.js +11 -3
- package/dist/es2019/nodeviews/mediaSingle.js +59 -24
- package/dist/es2019/nodeviews/mediaSingleNext.js +5 -4
- package/dist/es2019/pm-plugins/utils/media-files.js +63 -5
- package/dist/es2019/ui/CommentBadge/index.js +40 -10
- package/dist/es2019/ui/ImageBorder/styles.js +1 -2
- package/dist/es2019/ui/MediaPicker/index.js +15 -3
- package/dist/es2019/ui/MediaViewer/MediaViewerContainer.js +4 -4
- package/dist/es2019/ui/ResizableMediaSingle/ResizableMediaSingleNext.js +2 -1
- package/dist/es2019/ui/ToolbarMedia/index.js +17 -5
- package/dist/es2019/ui/hooks/useMediaProvider.js +11 -3
- package/dist/es2019/ui/toolbar/utils.js +5 -3
- package/dist/esm/mediaPlugin.js +21 -6
- package/dist/esm/nodeviews/mediaGroup.js +21 -6
- package/dist/esm/nodeviews/mediaInline.js +55 -13
- package/dist/esm/nodeviews/mediaNodeView/index.js +11 -3
- package/dist/esm/nodeviews/mediaSingle.js +87 -48
- package/dist/esm/nodeviews/mediaSingleNext.js +5 -4
- package/dist/esm/pm-plugins/utils/media-files.js +63 -5
- package/dist/esm/ui/CommentBadge/index.js +44 -14
- package/dist/esm/ui/ImageBorder/styles.js +1 -2
- package/dist/esm/ui/MediaPicker/index.js +15 -3
- package/dist/esm/ui/MediaViewer/MediaViewerContainer.js +4 -4
- package/dist/esm/ui/ResizableMediaSingle/ResizableMediaSingleNext.js +2 -1
- package/dist/esm/ui/ToolbarMedia/index.js +17 -5
- package/dist/esm/ui/hooks/useMediaProvider.js +11 -3
- package/dist/esm/ui/toolbar/utils.js +5 -3
- package/dist/types/nodeviews/mediaInline.d.ts +7 -2
- package/dist/types/nodeviews/mediaSingleNext.d.ts +3 -4
- package/dist/types/nodeviews/types.d.ts +3 -4
- package/dist/types/pm-plugins/utils/media-files.d.ts +3 -2
- package/dist/types/ui/MediaViewer/MediaViewerContainer.d.ts +4 -3
- package/dist/types/ui/toolbar/utils.d.ts +1 -0
- package/dist/types-ts4.5/nodeviews/mediaInline.d.ts +7 -2
- package/dist/types-ts4.5/nodeviews/mediaSingleNext.d.ts +3 -4
- package/dist/types-ts4.5/nodeviews/types.d.ts +3 -4
- package/dist/types-ts4.5/pm-plugins/utils/media-files.d.ts +3 -2
- package/dist/types-ts4.5/ui/MediaViewer/MediaViewerContainer.d.ts +4 -3
- package/dist/types-ts4.5/ui/toolbar/utils.d.ts +1 -0
- package/package.json +10 -4
|
@@ -3,13 +3,15 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.insertMediaInlineNode = exports.insertMediaGroupNode = exports.getPosInList = exports.canInsertMediaInline = void 0;
|
|
6
|
+
exports.insertMediaInlineNode = exports.insertMediaGroupNode = exports.getPosInList = exports.getFailToInsertAnalytics = exports.canInsertMediaInline = void 0;
|
|
7
7
|
var _analytics = require("@atlaskit/editor-common/analytics");
|
|
8
8
|
var _mediaInline = require("@atlaskit/editor-common/media-inline");
|
|
9
9
|
var _selection = require("@atlaskit/editor-common/selection");
|
|
10
10
|
var _utils = require("@atlaskit/editor-common/utils");
|
|
11
11
|
var _model = require("@atlaskit/editor-prosemirror/model");
|
|
12
|
+
var _transform = require("@atlaskit/editor-prosemirror/transform");
|
|
12
13
|
var _utils2 = require("@atlaskit/editor-prosemirror/utils");
|
|
14
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
13
15
|
var _isType = require("./is-type");
|
|
14
16
|
var _mediaCommon = require("./media-common");
|
|
15
17
|
var _mediaInline2 = require("./media-inline");
|
|
@@ -52,7 +54,21 @@ var getInsertMediaInlineAnalytics = function getInsertMediaInlineAnalytics(media
|
|
|
52
54
|
eventType: _analytics.EVENT_TYPE.TRACK
|
|
53
55
|
};
|
|
54
56
|
};
|
|
55
|
-
|
|
57
|
+
var getFailToInsertAnalytics = exports.getFailToInsertAnalytics = function getFailToInsertAnalytics(mediaState, actionSubjectId, inputMethod, insertMediaVia, reason) {
|
|
58
|
+
var media = mediaState.fileMimeType || 'unknown';
|
|
59
|
+
return {
|
|
60
|
+
action: _analytics.ACTION.FAILED_TO_INSERT,
|
|
61
|
+
actionSubject: _analytics.ACTION_SUBJECT.DOCUMENT,
|
|
62
|
+
actionSubjectId: actionSubjectId,
|
|
63
|
+
attributes: {
|
|
64
|
+
inputMethod: inputMethod,
|
|
65
|
+
fileExtension: media,
|
|
66
|
+
insertMediaVia: insertMediaVia,
|
|
67
|
+
reason: reason
|
|
68
|
+
},
|
|
69
|
+
eventType: _analytics.EVENT_TYPE.OPERATIONAL
|
|
70
|
+
};
|
|
71
|
+
};
|
|
56
72
|
/**
|
|
57
73
|
* Check if current editor selections is a media group or not.
|
|
58
74
|
* @param state Editor state
|
|
@@ -75,6 +91,27 @@ function shouldAppendParagraph(state, node) {
|
|
|
75
91
|
return ((0, _utils.insideTableCell)(state) || (0, _utils.isInListItem)(state) || (0, _utils.isInLayoutColumn)(state) || (0, _selection.atTheEndOfDoc)(state) && (!(0, _mediaCommon.posOfPrecedingMediaGroup)(state) || (0, _mediaCommon.isSelectionNonMediaBlockNode)(state))) && !wasMediaNode;
|
|
76
92
|
}
|
|
77
93
|
|
|
94
|
+
/**
|
|
95
|
+
* Check if node of type has been inserted successfully
|
|
96
|
+
*/
|
|
97
|
+
var hasInsertedNodeOfType = function hasInsertedNodeOfType(tr, nodeType) {
|
|
98
|
+
var _tr$doc$nodeAt;
|
|
99
|
+
var insertPos = -1;
|
|
100
|
+
tr.steps.forEach(function (step) {
|
|
101
|
+
if (step instanceof _transform.ReplaceStep) {
|
|
102
|
+
step.slice.content.forEach(function (node) {
|
|
103
|
+
if (node.type.name === nodeType) {
|
|
104
|
+
insertPos = step.from;
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
if (insertPos === -1 || ((_tr$doc$nodeAt = tr.doc.nodeAt(insertPos)) === null || _tr$doc$nodeAt === void 0 ? void 0 : _tr$doc$nodeAt.type.name) !== nodeType) {
|
|
110
|
+
return false;
|
|
111
|
+
}
|
|
112
|
+
return true;
|
|
113
|
+
};
|
|
114
|
+
|
|
78
115
|
/**
|
|
79
116
|
* Create a new media inline to insert the new media.
|
|
80
117
|
* @param view Editor view
|
|
@@ -129,12 +166,33 @@ var insertMediaInlineNode = exports.insertMediaInlineNode = function insertMedia
|
|
|
129
166
|
|
|
130
167
|
// Delete the selection if a selection is made
|
|
131
168
|
var deleteRange = findDeleteRange(state);
|
|
132
|
-
if (
|
|
133
|
-
|
|
169
|
+
if ((0, _platformFeatureFlags.fg)('platform_editor_track_media_fail_to_insert')) {
|
|
170
|
+
var payload;
|
|
171
|
+
try {
|
|
172
|
+
if (!deleteRange) {
|
|
173
|
+
tr.insert(pos, content);
|
|
174
|
+
} else {
|
|
175
|
+
tr.insert(pos, content).deleteRange(deleteRange.start, deleteRange.end);
|
|
176
|
+
}
|
|
177
|
+
if (hasInsertedNodeOfType(tr, 'mediaInline')) {
|
|
178
|
+
payload = getInsertMediaInlineAnalytics(mediaState, inputMethod, insertMediaVia);
|
|
179
|
+
} else {
|
|
180
|
+
payload = getFailToInsertAnalytics(mediaState, _analytics.ACTION_SUBJECT_ID.MEDIA_INLINE, inputMethod, insertMediaVia);
|
|
181
|
+
}
|
|
182
|
+
} catch (error) {
|
|
183
|
+
payload = getFailToInsertAnalytics(mediaState, _analytics.ACTION_SUBJECT_ID.MEDIA_INLINE, inputMethod, insertMediaVia,
|
|
184
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
185
|
+
error.toString());
|
|
186
|
+
}
|
|
187
|
+
editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 || editorAnalyticsAPI.attachAnalyticsEvent(payload)(tr);
|
|
134
188
|
} else {
|
|
135
|
-
|
|
189
|
+
if (!deleteRange) {
|
|
190
|
+
tr.insert(pos, content);
|
|
191
|
+
} else {
|
|
192
|
+
tr.insert(pos, content).deleteRange(deleteRange.start, deleteRange.end);
|
|
193
|
+
}
|
|
194
|
+
editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 || editorAnalyticsAPI.attachAnalyticsEvent(getInsertMediaInlineAnalytics(mediaState, inputMethod, insertMediaVia))(tr);
|
|
136
195
|
}
|
|
137
|
-
editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 || editorAnalyticsAPI.attachAnalyticsEvent(getInsertMediaInlineAnalytics(mediaState, inputMethod, insertMediaVia))(tr);
|
|
138
196
|
dispatch(tr);
|
|
139
197
|
return true;
|
|
140
198
|
};
|
|
@@ -12,6 +12,8 @@ var _reactIntlNext = require("react-intl-next");
|
|
|
12
12
|
var _analytics = require("@atlaskit/editor-common/analytics");
|
|
13
13
|
var _hooks = require("@atlaskit/editor-common/hooks");
|
|
14
14
|
var _mediaSingle = require("@atlaskit/editor-common/media-single");
|
|
15
|
+
var _useSharedPluginStateSelector = require("@atlaskit/editor-common/use-shared-plugin-state-selector");
|
|
16
|
+
var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
|
|
15
17
|
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); }
|
|
16
18
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
17
19
|
var CommentBadgeWrapper = function CommentBadgeWrapper(_ref) {
|
|
@@ -26,23 +28,37 @@ var CommentBadgeWrapper = function CommentBadgeWrapper(_ref) {
|
|
|
26
28
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
27
29
|
entered = _useState2[0],
|
|
28
30
|
setEntered = _useState2[1];
|
|
29
|
-
var _useSharedPluginState = (0, _hooks.useSharedPluginState)(api, ['annotation']
|
|
31
|
+
var _useSharedPluginState = (0, _hooks.useSharedPluginState)(api, ['annotation'], {
|
|
32
|
+
disabled: (0, _experiments.editorExperiment)('platform_editor_usesharedpluginstateselector', true)
|
|
33
|
+
}),
|
|
30
34
|
annotationState = _useSharedPluginState.annotationState;
|
|
35
|
+
var selectedAnnotationsSelector = (0, _useSharedPluginStateSelector.useSharedPluginStateSelector)(api, 'annotation.selectedAnnotations', {
|
|
36
|
+
disabled: (0, _experiments.editorExperiment)('platform_editor_usesharedpluginstateselector', false)
|
|
37
|
+
});
|
|
38
|
+
var isInlineCommentViewClosedSelector = (0, _useSharedPluginStateSelector.useSharedPluginStateSelector)(api, 'annotation.isInlineCommentViewClosed', {
|
|
39
|
+
disabled: (0, _experiments.editorExperiment)('platform_editor_usesharedpluginstateselector', false)
|
|
40
|
+
});
|
|
41
|
+
var annotationsSelector = (0, _useSharedPluginStateSelector.useSharedPluginStateSelector)(api, 'annotation.annotations', {
|
|
42
|
+
disabled: (0, _experiments.editorExperiment)('platform_editor_usesharedpluginstateselector', false)
|
|
43
|
+
});
|
|
44
|
+
var selectedAnnotations = (0, _experiments.editorExperiment)('platform_editor_usesharedpluginstateselector', true) ? selectedAnnotationsSelector : annotationState === null || annotationState === void 0 ? void 0 : annotationState.selectedAnnotations;
|
|
45
|
+
var isInlineCommentViewClosed = (0, _experiments.editorExperiment)('platform_editor_usesharedpluginstateselector', true) ? isInlineCommentViewClosedSelector : annotationState === null || annotationState === void 0 ? void 0 : annotationState.isInlineCommentViewClosed;
|
|
46
|
+
var annotations = (0, _experiments.editorExperiment)('platform_editor_usesharedpluginstateselector', true) ? annotationsSelector : annotationState === null || annotationState === void 0 ? void 0 : annotationState.annotations;
|
|
31
47
|
var _view$state$schema = view.state.schema,
|
|
32
48
|
media = _view$state$schema.nodes.media,
|
|
33
49
|
annotation = _view$state$schema.marks.annotation,
|
|
34
50
|
state = view.state,
|
|
35
51
|
dispatch = view.dispatch;
|
|
36
52
|
var status = (0, _react.useMemo)(function () {
|
|
37
|
-
if (!
|
|
53
|
+
if (!selectedAnnotations || !mediaNode) {
|
|
38
54
|
return 'default';
|
|
39
55
|
}
|
|
40
|
-
return
|
|
56
|
+
return selectedAnnotations.some(function (annotation) {
|
|
41
57
|
return !!mediaNode.marks.find(function (mark) {
|
|
42
58
|
return mark.attrs.id === annotation.id;
|
|
43
59
|
});
|
|
44
|
-
}) && !
|
|
45
|
-
}, [
|
|
60
|
+
}) && !isInlineCommentViewClosed ? 'active' : 'default';
|
|
61
|
+
}, [selectedAnnotations, isInlineCommentViewClosed, mediaNode]);
|
|
46
62
|
var onClick = (0, _react.useCallback)(function () {
|
|
47
63
|
if (api.annotation && mediaNode) {
|
|
48
64
|
var showCommentForBlockNode = api.annotation.actions.showCommentForBlockNode;
|
|
@@ -50,8 +66,8 @@ var CommentBadgeWrapper = function CommentBadgeWrapper(_ref) {
|
|
|
50
66
|
}
|
|
51
67
|
}, [api.annotation, dispatch, mediaNode, state]);
|
|
52
68
|
var pos = getPos();
|
|
53
|
-
var hasNoComments = !Number.isFinite(pos) || !
|
|
54
|
-
return maybeAnnotation.type !== annotation || !(maybeAnnotation.attrs.id in
|
|
69
|
+
var hasNoComments = !Number.isFinite(pos) || !annotations || !mediaNode || mediaNode.type !== media || mediaNode.marks.every(function (maybeAnnotation) {
|
|
70
|
+
return maybeAnnotation.type !== annotation || !(maybeAnnotation.attrs.id in annotations) || annotations[maybeAnnotation.attrs.id];
|
|
55
71
|
});
|
|
56
72
|
if (!isDrafting && hasNoComments || !mediaNode) {
|
|
57
73
|
return null;
|
|
@@ -98,23 +114,37 @@ var CommentBadgeNextWrapper = exports.CommentBadgeNextWrapper = function Comment
|
|
|
98
114
|
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
99
115
|
entered = _useState4[0],
|
|
100
116
|
setEntered = _useState4[1];
|
|
101
|
-
var _useSharedPluginState2 = (0, _hooks.useSharedPluginState)(api, ['annotation']
|
|
117
|
+
var _useSharedPluginState2 = (0, _hooks.useSharedPluginState)(api, ['annotation'], {
|
|
118
|
+
disabled: (0, _experiments.editorExperiment)('platform_editor_usesharedpluginstateselector', true)
|
|
119
|
+
}),
|
|
102
120
|
annotationState = _useSharedPluginState2.annotationState;
|
|
121
|
+
var selectedAnnotationsSelector = (0, _useSharedPluginStateSelector.useSharedPluginStateSelector)(api, 'annotation.selectedAnnotations', {
|
|
122
|
+
disabled: (0, _experiments.editorExperiment)('platform_editor_usesharedpluginstateselector', false)
|
|
123
|
+
});
|
|
124
|
+
var isInlineCommentViewClosedSelector = (0, _useSharedPluginStateSelector.useSharedPluginStateSelector)(api, 'annotation.isInlineCommentViewClosed', {
|
|
125
|
+
disabled: (0, _experiments.editorExperiment)('platform_editor_usesharedpluginstateselector', false)
|
|
126
|
+
});
|
|
127
|
+
var annotationsSelector = (0, _useSharedPluginStateSelector.useSharedPluginStateSelector)(api, 'annotation.annotations', {
|
|
128
|
+
disabled: (0, _experiments.editorExperiment)('platform_editor_usesharedpluginstateselector', false)
|
|
129
|
+
});
|
|
130
|
+
var selectedAnnotations = (0, _experiments.editorExperiment)('platform_editor_usesharedpluginstateselector', true) ? selectedAnnotationsSelector : annotationState === null || annotationState === void 0 ? void 0 : annotationState.selectedAnnotations;
|
|
131
|
+
var isInlineCommentViewClosed = (0, _experiments.editorExperiment)('platform_editor_usesharedpluginstateselector', true) ? isInlineCommentViewClosedSelector : annotationState === null || annotationState === void 0 ? void 0 : annotationState.isInlineCommentViewClosed;
|
|
132
|
+
var annotations = (0, _experiments.editorExperiment)('platform_editor_usesharedpluginstateselector', true) ? annotationsSelector : annotationState === null || annotationState === void 0 ? void 0 : annotationState.annotations;
|
|
103
133
|
var _view$state$schema2 = view.state.schema,
|
|
104
134
|
media = _view$state$schema2.nodes.media,
|
|
105
135
|
annotation = _view$state$schema2.marks.annotation,
|
|
106
136
|
state = view.state,
|
|
107
137
|
dispatch = view.dispatch;
|
|
108
138
|
var status = (0, _react.useMemo)(function () {
|
|
109
|
-
if (!
|
|
139
|
+
if (!selectedAnnotations || !mediaNode) {
|
|
110
140
|
return 'default';
|
|
111
141
|
}
|
|
112
|
-
return
|
|
142
|
+
return selectedAnnotations.some(function (annotation) {
|
|
113
143
|
return !!mediaNode.marks.find(function (mark) {
|
|
114
144
|
return mark.attrs.id === annotation.id;
|
|
115
145
|
});
|
|
116
|
-
}) && !
|
|
117
|
-
}, [
|
|
146
|
+
}) && !isInlineCommentViewClosed ? 'active' : 'default';
|
|
147
|
+
}, [selectedAnnotations, isInlineCommentViewClosed, mediaNode]);
|
|
118
148
|
var onClick = (0, _react.useCallback)(function () {
|
|
119
149
|
if (api.annotation && mediaNode) {
|
|
120
150
|
var showCommentForBlockNode = api.annotation.actions.showCommentForBlockNode;
|
|
@@ -122,8 +152,8 @@ var CommentBadgeNextWrapper = exports.CommentBadgeNextWrapper = function Comment
|
|
|
122
152
|
}
|
|
123
153
|
}, [api.annotation, dispatch, mediaNode, state]);
|
|
124
154
|
var pos = getPos();
|
|
125
|
-
var hasNoComments = !Number.isFinite(pos) || !
|
|
126
|
-
return maybeAnnotation.type !== annotation || !(maybeAnnotation.attrs.id in
|
|
155
|
+
var hasNoComments = !Number.isFinite(pos) || !annotations || !mediaNode || mediaNode.type !== media || mediaNode.marks.every(function (maybeAnnotation) {
|
|
156
|
+
return maybeAnnotation.type !== annotation || !(maybeAnnotation.attrs.id in annotations) || annotations[maybeAnnotation.attrs.id];
|
|
127
157
|
});
|
|
128
158
|
if (!isDrafting && hasNoComments || !mediaNode) {
|
|
129
159
|
return null;
|
|
@@ -44,9 +44,8 @@ var buttonStyle = exports.buttonStyle = function buttonStyle(selected) {
|
|
|
44
44
|
return (0, _react.css)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n\theight: 26px;\n\twidth: 26px;\n\tpadding: 0;\n\tborder-radius: 4px;\n\tbackground-color: ", ";\n\tborder: 1px solid ", ";\n\tcursor: pointer;\n\tdisplay: block;\n"])), selected ? "var(--ds-text, ".concat(_colors.N800, ")") : "var(--ds-background-neutral, ".concat(_colors.N20A, ")"), _uiColor.DEFAULT_BORDER_COLOR);
|
|
45
45
|
};
|
|
46
46
|
|
|
47
|
-
/* eslint-disable @atlaskit/design-system/ensure-design-token-usage */
|
|
48
47
|
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-exported-styles -- Ignored via go/DSP-18766
|
|
49
|
-
var buttonWrapperStyle = exports.buttonWrapperStyle = (0, _react.css)(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["\n\tborder: 1px solid transparent;\n\tmargin: ", ";\n\tfont-size: 0;\n\tdisplay: flex;\n\talign-items: center;\n\tpadding: ", ";\n\tborder-radius: 6px;\n\t&:focus-within,\n\t&:focus,\n\t&:hover {\n\t\tborder-color: ", " !important;\n\t}\n"])), "var(--ds-space-025, 2px)", "var(--ds-space-025, 2px)", _colors.N50);
|
|
48
|
+
var buttonWrapperStyle = exports.buttonWrapperStyle = (0, _react.css)(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["\n\tborder: 1px solid transparent;\n\tmargin: ", ";\n\tfont-size: 0;\n\tdisplay: flex;\n\talign-items: center;\n\tpadding: ", ";\n\tborder-radius: 6px;\n\t&:focus-within,\n\t&:focus,\n\t&:hover {\n\t\tborder-color: ", " !important;\n\t}\n"])), "var(--ds-space-025, 2px)", "var(--ds-space-025, 2px)", "var(--ds-border, ".concat(_colors.N50, ")"));
|
|
50
49
|
var line = exports.line = function line(size, selected) {
|
|
51
50
|
return (0, _react.css)(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2.default)(["\n\tposition: relative;\n\t&:before {\n\t\tcontent: '';\n\t\tdisplay: block;\n\t\tposition: absolute;\n\t\ttop: 50%;\n\t\tleft: 50%;\n\t\twidth: 12px;\n\t\theight: ", "px;\n\t\tbackground-color: ", ";\n\t\tborder-radius: 90px;\n\t\ttransform: translate(-50%, -50%) rotate(135deg);\n\t}\n"])), size, selected ? "var(--ds-icon-inverse, ".concat(_colors.N0, ")") : "var(--ds-icon, #44546F)");
|
|
52
51
|
};
|
|
@@ -13,6 +13,8 @@ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits
|
|
|
13
13
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
14
14
|
var _react = _interopRequireDefault(require("react"));
|
|
15
15
|
var _hooks = require("@atlaskit/editor-common/hooks");
|
|
16
|
+
var _useSharedPluginStateSelector = require("@atlaskit/editor-common/use-shared-plugin-state-selector");
|
|
17
|
+
var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
|
|
16
18
|
var _BrowserWrapper = require("./BrowserWrapper");
|
|
17
19
|
var _ClipboardWrapper = require("./ClipboardWrapper");
|
|
18
20
|
var _DropzoneWrapper = require("./DropzoneWrapper");
|
|
@@ -26,9 +28,19 @@ var MediaPicker = function MediaPicker(_ref) {
|
|
|
26
28
|
mediaState = _ref.mediaState,
|
|
27
29
|
onBrowseFn = _ref.onBrowseFn,
|
|
28
30
|
editorDomElement = _ref.editorDomElement;
|
|
29
|
-
var _useSharedPluginState = (0, _hooks.useSharedPluginState)(api, ['focus', 'connectivity']
|
|
31
|
+
var _useSharedPluginState = (0, _hooks.useSharedPluginState)(api, ['focus', 'connectivity'], {
|
|
32
|
+
disabled: (0, _experiments.editorExperiment)('platform_editor_usesharedpluginstateselector', true)
|
|
33
|
+
}),
|
|
30
34
|
focusState = _useSharedPluginState.focusState,
|
|
31
35
|
connectivityState = _useSharedPluginState.connectivityState;
|
|
36
|
+
var hasFocusSelector = (0, _useSharedPluginStateSelector.useSharedPluginStateSelector)(api, 'focus.hasFocus', {
|
|
37
|
+
disabled: (0, _experiments.editorExperiment)('platform_editor_usesharedpluginstateselector', false)
|
|
38
|
+
});
|
|
39
|
+
var connectivityModeSelector = (0, _useSharedPluginStateSelector.useSharedPluginStateSelector)(api, 'connectivity.mode', {
|
|
40
|
+
disabled: (0, _experiments.editorExperiment)('platform_editor_usesharedpluginstateselector', false)
|
|
41
|
+
});
|
|
42
|
+
var hasFocus = (0, _experiments.editorExperiment)('platform_editor_usesharedpluginstateselector', true) ? hasFocusSelector : focusState === null || focusState === void 0 ? void 0 : focusState.hasFocus;
|
|
43
|
+
var connectivityMode = (0, _experiments.editorExperiment)('platform_editor_usesharedpluginstateselector', true) ? connectivityModeSelector : connectivityState === null || connectivityState === void 0 ? void 0 : connectivityState.mode;
|
|
32
44
|
var featureFlags = mediaState.mediaOptions && mediaState.mediaOptions.featureFlags;
|
|
33
45
|
|
|
34
46
|
// Ignored via go/ees005
|
|
@@ -43,7 +55,7 @@ var MediaPicker = function MediaPicker(_ref) {
|
|
|
43
55
|
* as stopImmediatePropagation could cause race condition issues
|
|
44
56
|
*/
|
|
45
57
|
var container = editorParent;
|
|
46
|
-
var clipboard =
|
|
58
|
+
var clipboard = hasFocus ? /*#__PURE__*/_react.default.createElement(_ClipboardWrapper.ClipboardWrapper, {
|
|
47
59
|
mediaState: mediaState,
|
|
48
60
|
featureFlags: featureFlags,
|
|
49
61
|
container: container
|
|
@@ -52,7 +64,7 @@ var MediaPicker = function MediaPicker(_ref) {
|
|
|
52
64
|
mediaState: mediaState,
|
|
53
65
|
isActive: !isPopupOpened &&
|
|
54
66
|
// If we're offline don't show the dropzone
|
|
55
|
-
|
|
67
|
+
connectivityMode !== 'offline',
|
|
56
68
|
featureFlags: featureFlags,
|
|
57
69
|
editorDomElement: editorDomElement,
|
|
58
70
|
appearance: appearance
|
|
@@ -29,7 +29,8 @@ var mediaViewerContainerTestID = 'media-viewer-container-test';
|
|
|
29
29
|
var MediaViewerContainer = exports.MediaViewerContainer = function MediaViewerContainer(_ref) {
|
|
30
30
|
var _mediaNode$firstChild;
|
|
31
31
|
var mediaNode = _ref.mediaNode,
|
|
32
|
-
|
|
32
|
+
selectedMediaContainerNode = _ref.selectedMediaContainerNode,
|
|
33
|
+
mediaClientConfig = _ref.mediaClientConfig,
|
|
33
34
|
_ref$isEditorViewMode = _ref.isEditorViewMode,
|
|
34
35
|
isEditorViewMode = _ref$isEditorViewMode === void 0 ? false : _ref$isEditorViewMode,
|
|
35
36
|
_ref$isSelected = _ref.isSelected,
|
|
@@ -44,8 +45,7 @@ var MediaViewerContainer = exports.MediaViewerContainer = function MediaViewerCo
|
|
|
44
45
|
(0, _react.useEffect)(function () {
|
|
45
46
|
setShowMediaViewer(isSelected);
|
|
46
47
|
}, [isSelected]);
|
|
47
|
-
var selectedNodeAttrs = (0, _utils.
|
|
48
|
-
var mediaClientConfig = mediaPluginState.mediaClientConfig;
|
|
48
|
+
var selectedNodeAttrs = (0, _utils.getSelectedNearestMediaContainerNodeAttrsFunction)(selectedMediaContainerNode);
|
|
49
49
|
var showMediaViewer = function showMediaViewer() {
|
|
50
50
|
setShowMediaViewer(true);
|
|
51
51
|
};
|
|
@@ -21,6 +21,7 @@ var _react2 = require("@emotion/react");
|
|
|
21
21
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
22
22
|
var _throttle = _interopRequireDefault(require("lodash/throttle"));
|
|
23
23
|
var _memoizeOne = _interopRequireDefault(require("memoize-one"));
|
|
24
|
+
var _coreUtils = require("@atlaskit/editor-common/core-utils");
|
|
24
25
|
var _guideline = require("@atlaskit/editor-common/guideline");
|
|
25
26
|
var _mediaSingle = require("@atlaskit/editor-common/media-single");
|
|
26
27
|
var _resizer = require("@atlaskit/editor-common/resizer");
|
|
@@ -543,7 +544,7 @@ var ResizableMediaSingleNext = /*#__PURE__*/function (_React$Component) {
|
|
|
543
544
|
var resizerNextClassName = (0, _classnames.default)(className, _styles.resizerStyles);
|
|
544
545
|
var isNestedNode = this.isAdjacentMode();
|
|
545
546
|
var handlePositioning = this.getHandlePositioning();
|
|
546
|
-
var maxWidth = this.getMaxWidth();
|
|
547
|
+
var maxWidth = (0, _coreUtils.isSSR)() && size.width && (0, _platformFeatureFlags.fg)('platform_editor_fix_image_size_diff_during_ssr') ? undefined : this.getMaxWidth();
|
|
547
548
|
var minWidth = this.calcMinWidth(isVideoFile, lineLength);
|
|
548
549
|
|
|
549
550
|
// while is not resizing, we take 100% as min-width if the container width is less than the min-width
|
|
@@ -10,10 +10,12 @@ var _reactIntlNext = require("react-intl-next");
|
|
|
10
10
|
var _hooks = require("@atlaskit/editor-common/hooks");
|
|
11
11
|
var _media = require("@atlaskit/editor-common/media");
|
|
12
12
|
var _uiMenu = require("@atlaskit/editor-common/ui-menu");
|
|
13
|
+
var _useSharedPluginStateSelector = require("@atlaskit/editor-common/use-shared-plugin-state-selector");
|
|
13
14
|
var _attachmentEditorAttachment = _interopRequireDefault(require("@atlaskit/icon/core/migration/attachment--editor-attachment"));
|
|
14
|
-
var
|
|
15
|
+
var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
|
|
16
|
+
var onClickMediaButton = function onClickMediaButton(showMediaPicker) {
|
|
15
17
|
return function () {
|
|
16
|
-
|
|
18
|
+
showMediaPicker();
|
|
17
19
|
return true;
|
|
18
20
|
};
|
|
19
21
|
};
|
|
@@ -22,15 +24,25 @@ var ToolbarMedia = function ToolbarMedia(_ref) {
|
|
|
22
24
|
isReducedSpacing = _ref.isReducedSpacing,
|
|
23
25
|
intl = _ref.intl,
|
|
24
26
|
api = _ref.api;
|
|
25
|
-
var _useSharedPluginState = (0, _hooks.useSharedPluginState)(api, ['media']
|
|
27
|
+
var _useSharedPluginState = (0, _hooks.useSharedPluginState)(api, ['media'], {
|
|
28
|
+
disabled: (0, _experiments.editorExperiment)('platform_editor_usesharedpluginstateselector', true)
|
|
29
|
+
}),
|
|
26
30
|
mediaState = _useSharedPluginState.mediaState;
|
|
27
|
-
|
|
31
|
+
var allowsUploadsSelector = (0, _useSharedPluginStateSelector.useSharedPluginStateSelector)(api, 'media.allowsUploads', {
|
|
32
|
+
disabled: (0, _experiments.editorExperiment)('platform_editor_usesharedpluginstateselector', false)
|
|
33
|
+
});
|
|
34
|
+
var showMediaPickerSelector = (0, _useSharedPluginStateSelector.useSharedPluginStateSelector)(api, 'media.showMediaPicker', {
|
|
35
|
+
disabled: (0, _experiments.editorExperiment)('platform_editor_usesharedpluginstateselector', false)
|
|
36
|
+
});
|
|
37
|
+
var allowsUploads = (0, _experiments.editorExperiment)('platform_editor_usesharedpluginstateselector', true) ? allowsUploadsSelector : mediaState === null || mediaState === void 0 ? void 0 : mediaState.allowsUploads;
|
|
38
|
+
var showMediaPicker = (0, _experiments.editorExperiment)('platform_editor_usesharedpluginstateselector', true) ? showMediaPickerSelector : mediaState === null || mediaState === void 0 ? void 0 : mediaState.showMediaPicker;
|
|
39
|
+
if (!allowsUploads || !showMediaPicker) {
|
|
28
40
|
return null;
|
|
29
41
|
}
|
|
30
42
|
var toolbarMediaTitle = _media.toolbarMediaMessages.toolbarMediaTitle;
|
|
31
43
|
return /*#__PURE__*/_react.default.createElement(_uiMenu.ToolbarButton, {
|
|
32
44
|
buttonId: _uiMenu.TOOLBAR_BUTTON.MEDIA,
|
|
33
|
-
onClick: onClickMediaButton(
|
|
45
|
+
onClick: onClickMediaButton(showMediaPicker),
|
|
34
46
|
disabled: isDisabled,
|
|
35
47
|
title: intl.formatMessage(toolbarMediaTitle),
|
|
36
48
|
spacing: isReducedSpacing ? 'none' : 'default',
|
|
@@ -6,11 +6,19 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.useMediaProvider = void 0;
|
|
7
7
|
var _react = require("react");
|
|
8
8
|
var _hooks = require("@atlaskit/editor-common/hooks");
|
|
9
|
+
var _useSharedPluginStateSelector = require("@atlaskit/editor-common/use-shared-plugin-state-selector");
|
|
10
|
+
var _experiments = require("@atlaskit/tmp-editor-statsig/experiments");
|
|
9
11
|
var useMediaProvider = exports.useMediaProvider = function useMediaProvider(pluginInjectionApi) {
|
|
10
|
-
var _useSharedPluginState = (0, _hooks.useSharedPluginState)(pluginInjectionApi, ['media']
|
|
12
|
+
var _useSharedPluginState = (0, _hooks.useSharedPluginState)(pluginInjectionApi, ['media'], {
|
|
13
|
+
disabled: (0, _experiments.editorExperiment)('platform_editor_usesharedpluginstateselector', true)
|
|
14
|
+
}),
|
|
11
15
|
mediaState = _useSharedPluginState.mediaState;
|
|
16
|
+
var mediaProviderSelector = (0, _useSharedPluginStateSelector.useSharedPluginStateSelector)(pluginInjectionApi, 'media.mediaProvider', {
|
|
17
|
+
disabled: (0, _experiments.editorExperiment)('platform_editor_usesharedpluginstateselector', false)
|
|
18
|
+
});
|
|
19
|
+
var mediaProvider = (0, _experiments.editorExperiment)('platform_editor_usesharedpluginstateselector', true) ? mediaProviderSelector : mediaState === null || mediaState === void 0 ? void 0 : mediaState.mediaProvider;
|
|
12
20
|
var provider = (0, _react.useMemo)(function () {
|
|
13
|
-
return
|
|
14
|
-
}, [
|
|
21
|
+
return mediaProvider;
|
|
22
|
+
}, [mediaProvider]);
|
|
15
23
|
return provider;
|
|
16
24
|
};
|
|
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.updateToFullHeightSeparator = exports.removeMediaGroupNode = exports.isExternalMedia = exports.getSelectedNearestMediaContainerNodeAttrs = exports.getSelectedMediaSingle = exports.getSelectedLayoutIcon = exports.getPixelWidthOfElement = exports.getMaxToolbarWidth = exports.downloadMedia = exports.canShowSwitchButtons = exports.calcNewLayout = void 0;
|
|
7
|
+
exports.updateToFullHeightSeparator = exports.removeMediaGroupNode = exports.isExternalMedia = exports.getSelectedNearestMediaContainerNodeAttrsFunction = exports.getSelectedNearestMediaContainerNodeAttrs = exports.getSelectedMediaSingle = exports.getSelectedLayoutIcon = exports.getPixelWidthOfElement = exports.getMaxToolbarWidth = exports.downloadMedia = exports.canShowSwitchButtons = exports.calcNewLayout = void 0;
|
|
8
8
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
9
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
10
|
var _memoizeOne = _interopRequireDefault(require("memoize-one"));
|
|
@@ -25,9 +25,8 @@ var getSelectedMediaContainerNodeAttrs = function getSelectedMediaContainerNodeA
|
|
|
25
25
|
}
|
|
26
26
|
return null;
|
|
27
27
|
};
|
|
28
|
-
var
|
|
29
|
-
var
|
|
30
|
-
var selectedNode = (_mediaPluginState$sel2 = mediaPluginState.selectedMediaContainerNode) === null || _mediaPluginState$sel2 === void 0 ? void 0 : _mediaPluginState$sel2.call(mediaPluginState);
|
|
28
|
+
var getSelectedNearestMediaContainerNodeAttrsFunction = exports.getSelectedNearestMediaContainerNodeAttrsFunction = function getSelectedNearestMediaContainerNodeAttrsFunction(selectedMediaContainerNode) {
|
|
29
|
+
var selectedNode = selectedMediaContainerNode === null || selectedMediaContainerNode === void 0 ? void 0 : selectedMediaContainerNode();
|
|
31
30
|
if (selectedNode) {
|
|
32
31
|
switch (selectedNode.type.name) {
|
|
33
32
|
case 'mediaSingle':
|
|
@@ -41,6 +40,9 @@ var getSelectedNearestMediaContainerNodeAttrs = exports.getSelectedNearestMediaC
|
|
|
41
40
|
}
|
|
42
41
|
return null;
|
|
43
42
|
};
|
|
43
|
+
var getSelectedNearestMediaContainerNodeAttrs = exports.getSelectedNearestMediaContainerNodeAttrs = function getSelectedNearestMediaContainerNodeAttrs(mediaPluginState) {
|
|
44
|
+
return getSelectedNearestMediaContainerNodeAttrsFunction(mediaPluginState.selectedMediaContainerNode);
|
|
45
|
+
};
|
|
44
46
|
var downloadMedia = exports.downloadMedia = /*#__PURE__*/function () {
|
|
45
47
|
var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(mediaPluginState, isViewMode) {
|
|
46
48
|
var selectedNodeAttrs, id, _selectedNodeAttrs$co, collection, mediaClient, fileState, fileName;
|
|
@@ -4,6 +4,7 @@ import { useSharedPluginState } from '@atlaskit/editor-common/hooks';
|
|
|
4
4
|
import { toolbarInsertBlockMessages as messages } from '@atlaskit/editor-common/messages';
|
|
5
5
|
import { IconImages } from '@atlaskit/editor-common/quick-insert';
|
|
6
6
|
import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
|
|
7
|
+
import { useSharedPluginStateSelector } from '@atlaskit/editor-common/use-shared-plugin-state-selector';
|
|
7
8
|
import { NodeSelection, PluginKey } from '@atlaskit/editor-prosemirror/state';
|
|
8
9
|
import { getMediaFeatureFlag } from '@atlaskit/media-common';
|
|
9
10
|
import { fg } from '@atlaskit/platform-feature-flags';
|
|
@@ -56,21 +57,35 @@ const MediaViewerFunctionalComponent = ({
|
|
|
56
57
|
}) => {
|
|
57
58
|
const {
|
|
58
59
|
mediaState
|
|
59
|
-
} = useSharedPluginState(api, ['media']
|
|
60
|
+
} = useSharedPluginState(api, ['media'], {
|
|
61
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', true)
|
|
62
|
+
});
|
|
63
|
+
const isMediaViewerVisibleSelector = useSharedPluginStateSelector(api, 'media.isMediaViewerVisible', {
|
|
64
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
65
|
+
});
|
|
66
|
+
const mediaViewerSelectedMediaSelector = useSharedPluginStateSelector(api, 'media.mediaViewerSelectedMedia', {
|
|
67
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
68
|
+
});
|
|
69
|
+
const mediaClientConfigSelector = useSharedPluginStateSelector(api, 'media.mediaClientConfig', {
|
|
70
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
71
|
+
});
|
|
72
|
+
const isMediaViewerVisible = editorExperiment('platform_editor_usesharedpluginstateselector', true) ? isMediaViewerVisibleSelector : mediaState === null || mediaState === void 0 ? void 0 : mediaState.isMediaViewerVisible;
|
|
73
|
+
const mediaViewerSelectedMedia = editorExperiment('platform_editor_usesharedpluginstateselector', true) ? mediaViewerSelectedMediaSelector : mediaState === null || mediaState === void 0 ? void 0 : mediaState.mediaViewerSelectedMedia;
|
|
74
|
+
const mediaClientConfig = editorExperiment('platform_editor_usesharedpluginstateselector', true) ? mediaClientConfigSelector : mediaState === null || mediaState === void 0 ? void 0 : mediaState.mediaClientConfig;
|
|
60
75
|
|
|
61
76
|
// Only traverse document once when media viewer is visible, media viewer items will not update
|
|
62
77
|
// when document changes are made while media viewer is open
|
|
63
78
|
|
|
64
79
|
const mediaItems = useMemo(() => {
|
|
65
|
-
if (
|
|
80
|
+
if (isMediaViewerVisible) {
|
|
66
81
|
const mediaNodes = extractMediaNodes(editorView.state.doc);
|
|
67
82
|
return createMediaIdentifierArray(mediaNodes);
|
|
68
83
|
}
|
|
69
84
|
// eslint-disable-next-line react-hooks/exhaustive-deps -- only update mediaItems once when media viewer is visible
|
|
70
|
-
}, [
|
|
85
|
+
}, [isMediaViewerVisible]);
|
|
71
86
|
|
|
72
87
|
// Viewer does not have required attributes to render the media viewer
|
|
73
|
-
if (!
|
|
88
|
+
if (!isMediaViewerVisible || !mediaViewerSelectedMedia || !mediaClientConfig) {
|
|
74
89
|
return null;
|
|
75
90
|
}
|
|
76
91
|
const handleOnClose = () => {
|
|
@@ -78,9 +93,9 @@ const MediaViewerFunctionalComponent = ({
|
|
|
78
93
|
api === null || api === void 0 ? void 0 : api.core.actions.execute(api === null || api === void 0 ? void 0 : api.media.commands.hideMediaViewer);
|
|
79
94
|
};
|
|
80
95
|
return /*#__PURE__*/React.createElement(RenderMediaViewer, {
|
|
81
|
-
mediaClientConfig:
|
|
96
|
+
mediaClientConfig: mediaClientConfig,
|
|
82
97
|
onClose: handleOnClose,
|
|
83
|
-
selectedNodeAttrs:
|
|
98
|
+
selectedNodeAttrs: mediaViewerSelectedMedia,
|
|
84
99
|
items: mediaItems
|
|
85
100
|
});
|
|
86
101
|
};
|
|
@@ -5,6 +5,7 @@ import { useSharedPluginState } from '@atlaskit/editor-common/hooks';
|
|
|
5
5
|
import { nodeViewsMessages as messages } from '@atlaskit/editor-common/media';
|
|
6
6
|
import { WithProviders } from '@atlaskit/editor-common/provider-factory';
|
|
7
7
|
import ReactNodeView from '@atlaskit/editor-common/react-node-view';
|
|
8
|
+
import { useSharedPluginStateSelector } from '@atlaskit/editor-common/use-shared-plugin-state-selector';
|
|
8
9
|
import { isNodeSelectedOrInRange, SelectedState, setNodeSelection } from '@atlaskit/editor-common/utils';
|
|
9
10
|
import EditorCloseIcon from '@atlaskit/icon/core/migration/close--editor-close';
|
|
10
11
|
import { getMediaFeatureFlag } from '@atlaskit/media-common';
|
|
@@ -265,11 +266,23 @@ function MediaGroupNodeViewInternal({
|
|
|
265
266
|
const {
|
|
266
267
|
editorDisabledState: editorDisabledPlugin,
|
|
267
268
|
editorViewModeState: editorViewModePlugin
|
|
268
|
-
} = useSharedPluginState(pluginInjectionApi, ['editorDisabled', 'editorViewMode']
|
|
269
|
+
} = useSharedPluginState(pluginInjectionApi, ['editorDisabled', 'editorViewMode'], {
|
|
270
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', true)
|
|
271
|
+
});
|
|
272
|
+
const editorDisabledSelector = useSharedPluginStateSelector(pluginInjectionApi, 'editorDisabled.editorDisabled', {
|
|
273
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
274
|
+
});
|
|
275
|
+
const editorViewModeSelector = useSharedPluginStateSelector(pluginInjectionApi, 'editorViewMode.mode', {
|
|
276
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', false)
|
|
277
|
+
});
|
|
278
|
+
const editorDisabled = editorExperiment('platform_editor_usesharedpluginstateselector', true) ? editorDisabledSelector : editorDisabledPlugin === null || editorDisabledPlugin === void 0 ? void 0 : editorDisabledPlugin.editorDisabled;
|
|
279
|
+
const editorViewMode = editorExperiment('platform_editor_usesharedpluginstateselector', true) ? editorViewModeSelector : editorViewModePlugin === null || editorViewModePlugin === void 0 ? void 0 : editorViewModePlugin.mode;
|
|
269
280
|
const mediaProvider = useMediaProvider(pluginInjectionApi);
|
|
270
281
|
return renderFn({
|
|
271
282
|
editorDisabledPlugin,
|
|
272
283
|
editorViewModePlugin,
|
|
284
|
+
editorDisabled,
|
|
285
|
+
editorViewMode,
|
|
273
286
|
mediaProvider
|
|
274
287
|
});
|
|
275
288
|
}
|
|
@@ -290,7 +303,9 @@ class MediaGroupNodeView extends ReactNodeView {
|
|
|
290
303
|
const renderFn = ({
|
|
291
304
|
editorDisabledPlugin,
|
|
292
305
|
editorViewModePlugin,
|
|
293
|
-
mediaProvider: mediaProviderFromState
|
|
306
|
+
mediaProvider: mediaProviderFromState,
|
|
307
|
+
editorDisabled,
|
|
308
|
+
editorViewMode
|
|
294
309
|
}) => {
|
|
295
310
|
const mediaProvider = mediaProviderFromState ? Promise.resolve(mediaProviderFromState) : undefined;
|
|
296
311
|
if (!mediaProvider) {
|
|
@@ -302,7 +317,7 @@ class MediaGroupNodeView extends ReactNodeView {
|
|
|
302
317
|
getPos: getPos,
|
|
303
318
|
view: this.view,
|
|
304
319
|
forwardRef: forwardRef,
|
|
305
|
-
disabled:
|
|
320
|
+
disabled: editorDisabled,
|
|
306
321
|
allowLazyLoading: mediaOptions.allowLazyLoading,
|
|
307
322
|
mediaProvider: mediaProvider,
|
|
308
323
|
contextIdentifierProvider: contextIdentifierProvider,
|
|
@@ -310,7 +325,7 @@ class MediaGroupNodeView extends ReactNodeView {
|
|
|
310
325
|
anchorPos: this.view.state.selection.$anchor.pos,
|
|
311
326
|
headPos: this.view.state.selection.$head.pos,
|
|
312
327
|
mediaOptions: mediaOptions,
|
|
313
|
-
editorViewMode:
|
|
328
|
+
editorViewMode: editorViewMode === 'view'
|
|
314
329
|
});
|
|
315
330
|
}
|
|
316
331
|
return /*#__PURE__*/React.createElement(IntlMediaGroup, {
|
|
@@ -318,7 +333,7 @@ class MediaGroupNodeView extends ReactNodeView {
|
|
|
318
333
|
getPos: getPos,
|
|
319
334
|
view: this.view,
|
|
320
335
|
forwardRef: forwardRef,
|
|
321
|
-
disabled: (editorDisabledPlugin || {}).editorDisabled,
|
|
336
|
+
disabled: editorExperiment('platform_editor_usesharedpluginstateselector', true) ? editorDisabled : (editorDisabledPlugin || {}).editorDisabled,
|
|
322
337
|
allowLazyLoading: mediaOptions.allowLazyLoading,
|
|
323
338
|
mediaProvider: mediaProvider,
|
|
324
339
|
contextIdentifierProvider: contextIdentifierProvider,
|
|
@@ -326,7 +341,7 @@ class MediaGroupNodeView extends ReactNodeView {
|
|
|
326
341
|
anchorPos: this.view.state.selection.$anchor.pos,
|
|
327
342
|
headPos: this.view.state.selection.$head.pos,
|
|
328
343
|
mediaOptions: mediaOptions,
|
|
329
|
-
editorViewMode: (editorViewModePlugin === null || editorViewModePlugin === void 0 ? void 0 : editorViewModePlugin.mode) === 'view'
|
|
344
|
+
editorViewMode: editorExperiment('platform_editor_usesharedpluginstateselector', true) ? editorViewMode === 'view' : (editorViewModePlugin === null || editorViewModePlugin === void 0 ? void 0 : editorViewModePlugin.mode) === 'view'
|
|
330
345
|
});
|
|
331
346
|
};
|
|
332
347
|
return /*#__PURE__*/React.createElement(MediaGroupNodeViewInternal, {
|