@atlaskit/editor-plugin-media-insert 3.1.1 → 3.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -0
- package/dist/cjs/actions.js +4 -4
- package/dist/cjs/plugin.js +6 -7
- package/dist/cjs/pm-plugins/main.js +2 -2
- package/dist/cjs/ui/MediaFromURL.js +93 -104
- package/dist/cjs/ui/MediaInsertPicker.js +13 -5
- package/dist/es2019/actions.js +4 -4
- package/dist/es2019/plugin.js +6 -7
- package/dist/es2019/pm-plugins/main.js +2 -2
- package/dist/es2019/ui/MediaFromURL.js +62 -73
- package/dist/es2019/ui/MediaInsertPicker.js +13 -5
- package/dist/esm/actions.js +4 -4
- package/dist/esm/plugin.js +6 -7
- package/dist/esm/pm-plugins/main.js +2 -2
- package/dist/esm/ui/MediaFromURL.js +90 -104
- package/dist/esm/ui/MediaInsertPicker.js +13 -5
- package/dist/types/actions.d.ts +4 -1
- package/dist/types/types.d.ts +8 -4
- package/dist/types-ts4.5/actions.d.ts +4 -1
- package/dist/types-ts4.5/types.d.ts +8 -4
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
# @atlaskit/editor-plugin-media-insert
|
|
2
2
|
|
|
3
|
+
## 3.1.3
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`83ae273817f38`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/83ae273817f38) -
|
|
8
|
+
ED-24999 Convert External Image Upload form to use components from @atlaskit/form
|
|
9
|
+
- Updated dependencies
|
|
10
|
+
|
|
11
|
+
## 3.1.2
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- [#147461](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/147461)
|
|
16
|
+
[`acef010cdb706`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/acef010cdb706) -
|
|
17
|
+
[ux] [ED-25164] Pass mounting point to media insert plugin for correct toolbar popup positioning
|
|
18
|
+
- [#147206](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/147206)
|
|
19
|
+
[`c3f82dfdeaf62`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/c3f82dfdeaf62) -
|
|
20
|
+
[ED-25157] Make sure document inserted for media from the media insert plugin has the correct
|
|
21
|
+
attributes (insertMediaVia)
|
|
22
|
+
|
|
3
23
|
## 3.1.1
|
|
4
24
|
|
|
5
25
|
### Patch Changes
|
package/dist/cjs/actions.js
CHANGED
|
@@ -11,20 +11,20 @@ var ACTION_CLOSE_POPUP = exports.ACTION_CLOSE_POPUP = 'CLOSE_POPUP';
|
|
|
11
11
|
var setPopupMeta = function setPopupMeta(_ref) {
|
|
12
12
|
var type = _ref.type,
|
|
13
13
|
tr = _ref.tr,
|
|
14
|
-
|
|
14
|
+
mountInfo = _ref.mountInfo;
|
|
15
15
|
return tr.setMeta(_pluginKey.pluginKey, {
|
|
16
16
|
type: type,
|
|
17
|
-
|
|
17
|
+
mountInfo: mountInfo
|
|
18
18
|
});
|
|
19
19
|
};
|
|
20
|
-
var showMediaInsertPopup = exports.showMediaInsertPopup = function showMediaInsertPopup(tr,
|
|
20
|
+
var showMediaInsertPopup = exports.showMediaInsertPopup = function showMediaInsertPopup(tr, mountInfo) {
|
|
21
21
|
// Log exposure here but don't actually switch anything on it
|
|
22
22
|
(0, _experiments.editorExperiment)('add-media-from-url', true, {
|
|
23
23
|
exposure: true
|
|
24
24
|
});
|
|
25
25
|
return setPopupMeta({
|
|
26
26
|
type: ACTION_OPEN_POPUP,
|
|
27
|
-
|
|
27
|
+
mountInfo: mountInfo,
|
|
28
28
|
tr: tr
|
|
29
29
|
});
|
|
30
30
|
};
|
package/dist/cjs/plugin.js
CHANGED
|
@@ -36,17 +36,17 @@ var mediaInsertPlugin = exports.mediaInsertPlugin = function mediaInsertPlugin(_
|
|
|
36
36
|
}
|
|
37
37
|
var _ref2 = _pluginKey.pluginKey.getState(editorState) || {},
|
|
38
38
|
isOpen = _ref2.isOpen,
|
|
39
|
-
|
|
39
|
+
mountInfo = _ref2.mountInfo;
|
|
40
40
|
return {
|
|
41
41
|
isOpen: isOpen,
|
|
42
|
-
|
|
42
|
+
mountInfo: mountInfo
|
|
43
43
|
};
|
|
44
44
|
},
|
|
45
45
|
commands: {
|
|
46
|
-
showMediaInsertPopup: function showMediaInsertPopup(
|
|
46
|
+
showMediaInsertPopup: function showMediaInsertPopup(mountInfo) {
|
|
47
47
|
return function (_ref3) {
|
|
48
48
|
var tr = _ref3.tr;
|
|
49
|
-
return (0, _actions.showMediaInsertPopup)(tr,
|
|
49
|
+
return (0, _actions.showMediaInsertPopup)(tr, mountInfo);
|
|
50
50
|
};
|
|
51
51
|
}
|
|
52
52
|
},
|
|
@@ -59,8 +59,7 @@ var mediaInsertPlugin = exports.mediaInsertPlugin = function mediaInsertPlugin(_
|
|
|
59
59
|
var insertMediaSingle = function insertMediaSingle(_ref5) {
|
|
60
60
|
var _api$media$actions$in;
|
|
61
61
|
var mediaState = _ref5.mediaState,
|
|
62
|
-
inputMethod = _ref5.inputMethod
|
|
63
|
-
insertMediaVia = _ref5.insertMediaVia;
|
|
62
|
+
inputMethod = _ref5.inputMethod;
|
|
64
63
|
var id = mediaState.id,
|
|
65
64
|
dimensions = mediaState.dimensions,
|
|
66
65
|
contextId = mediaState.contextId,
|
|
@@ -85,7 +84,7 @@ var mediaInsertPlugin = exports.mediaInsertPlugin = function mediaInsertPlugin(_
|
|
|
85
84
|
alt: fileName,
|
|
86
85
|
__fileMimeType: mediaState.fileMimeType
|
|
87
86
|
});
|
|
88
|
-
return (_api$media$actions$in = api === null || api === void 0 ? void 0 : api.media.actions.insertMediaAsMediaSingle(editorView, node, inputMethod, isNestingInQuoteSupported,
|
|
87
|
+
return (_api$media$actions$in = api === null || api === void 0 ? void 0 : api.media.actions.insertMediaAsMediaSingle(editorView, node, inputMethod, isNestingInQuoteSupported, _analytics.INSERT_MEDIA_VIA.EXTERNAL_UPLOAD)) !== null && _api$media$actions$in !== void 0 ? _api$media$actions$in : false;
|
|
89
88
|
};
|
|
90
89
|
var insertExternalMediaSingle = function insertExternalMediaSingle(_ref7) {
|
|
91
90
|
var _api$media$actions$in2;
|
|
@@ -13,7 +13,7 @@ var createPlugin = exports.createPlugin = function createPlugin() {
|
|
|
13
13
|
init: function init() {
|
|
14
14
|
return {
|
|
15
15
|
isOpen: false,
|
|
16
|
-
|
|
16
|
+
mountInfo: undefined
|
|
17
17
|
};
|
|
18
18
|
},
|
|
19
19
|
apply: function apply(tr, mediaInsertPluginState) {
|
|
@@ -22,7 +22,7 @@ var createPlugin = exports.createPlugin = function createPlugin() {
|
|
|
22
22
|
case _actions.ACTION_OPEN_POPUP:
|
|
23
23
|
return {
|
|
24
24
|
isOpen: true,
|
|
25
|
-
|
|
25
|
+
mountInfo: meta.mountInfo
|
|
26
26
|
};
|
|
27
27
|
case _actions.ACTION_CLOSE_POPUP:
|
|
28
28
|
return {
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
5
|
Object.defineProperty(exports, "__esModule", {
|
|
5
6
|
value: true
|
|
6
7
|
});
|
|
7
8
|
exports.MediaFromURL = MediaFromURL;
|
|
8
9
|
exports.isValidUrl = void 0;
|
|
9
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
10
10
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
12
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
11
13
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
12
14
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
15
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
@@ -18,7 +20,7 @@ var _buttonGroup = _interopRequireDefault(require("@atlaskit/button/button-group
|
|
|
18
20
|
var _new = _interopRequireDefault(require("@atlaskit/button/new"));
|
|
19
21
|
var _analytics = require("@atlaskit/editor-common/analytics");
|
|
20
22
|
var _messages = require("@atlaskit/editor-common/messages");
|
|
21
|
-
var _form = require("@atlaskit/form");
|
|
23
|
+
var _form = _interopRequireWildcard(require("@atlaskit/form"));
|
|
22
24
|
var _filePreview = _interopRequireDefault(require("@atlaskit/icon/glyph/editor/file-preview"));
|
|
23
25
|
var _mediaClientReact = require("@atlaskit/media-client-react");
|
|
24
26
|
var _primitives = require("@atlaskit/primitives");
|
|
@@ -26,6 +28,9 @@ var _sectionMessage = _interopRequireDefault(require("@atlaskit/section-message"
|
|
|
26
28
|
var _textfield = _interopRequireDefault(require("@atlaskit/textfield"));
|
|
27
29
|
var _MediaCard = require("./MediaCard");
|
|
28
30
|
var _useAnalyticsEvents2 = require("./useAnalyticsEvents");
|
|
31
|
+
var _excluded = ["value", "onChange"];
|
|
32
|
+
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); }
|
|
33
|
+
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; }
|
|
29
34
|
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; }
|
|
30
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; }
|
|
31
36
|
var PreviewBoxStyles = (0, _primitives.xcss)({
|
|
@@ -38,9 +43,6 @@ var PreviewBoxStyles = (0, _primitives.xcss)({
|
|
|
38
43
|
var PreviewImageStyles = (0, _primitives.xcss)({
|
|
39
44
|
height: '200px'
|
|
40
45
|
});
|
|
41
|
-
var ButtonGroupStyles = (0, _primitives.xcss)({
|
|
42
|
-
alignSelf: 'end'
|
|
43
|
-
});
|
|
44
46
|
var FormStyles = (0, _primitives.xcss)({
|
|
45
47
|
flexGrow: 1
|
|
46
48
|
});
|
|
@@ -103,22 +105,10 @@ function MediaFromURL(_ref) {
|
|
|
103
105
|
warning: intl.formatMessage(_messages.mediaInsertMessages.fromUrlWarning),
|
|
104
106
|
invalidUrl: intl.formatMessage(_messages.mediaInsertMessages.invalidUrlErrorMessage)
|
|
105
107
|
};
|
|
106
|
-
var _React$useState = _react.default.useState(''),
|
|
107
|
-
_React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
|
|
108
|
-
inputUrl = _React$useState2[0],
|
|
109
|
-
setUrl = _React$useState2[1];
|
|
110
|
-
var _React$useState3 = _react.default.useState(),
|
|
111
|
-
_React$useState4 = (0, _slicedToArray2.default)(_React$useState3, 2),
|
|
112
|
-
hasUrlError = _React$useState4[0],
|
|
113
|
-
setHasUrlError = _React$useState4[1];
|
|
114
108
|
var _React$useReducer = _react.default.useReducer(previewStateReducer, INITIAL_PREVIEW_STATE),
|
|
115
109
|
_React$useReducer2 = (0, _slicedToArray2.default)(_React$useReducer, 2),
|
|
116
110
|
previewState = _React$useReducer2[0],
|
|
117
111
|
dispatch = _React$useReducer2[1];
|
|
118
|
-
var _React$useState5 = _react.default.useState(false),
|
|
119
|
-
_React$useState6 = (0, _slicedToArray2.default)(_React$useState5, 2),
|
|
120
|
-
isInputFocused = _React$useState6[0],
|
|
121
|
-
setInputFocused = _React$useState6[1];
|
|
122
112
|
var pasteFlag = _react.default.useRef(false);
|
|
123
113
|
var _useAnalyticsEvents = (0, _useAnalyticsEvents2.useAnalyticsEvents)(dispatchAnalyticsEvent),
|
|
124
114
|
onUploadButtonClickedAnalytics = _useAnalyticsEvents.onUploadButtonClickedAnalytics,
|
|
@@ -178,7 +168,7 @@ function MediaFromURL(_ref) {
|
|
|
178
168
|
dispatch({
|
|
179
169
|
type: 'warning',
|
|
180
170
|
warning: _context.t0,
|
|
181
|
-
url:
|
|
171
|
+
url: url
|
|
182
172
|
});
|
|
183
173
|
} else if (_context.t0 instanceof Error) {
|
|
184
174
|
message = 'Image preview fetch failed';
|
|
@@ -203,39 +193,21 @@ function MediaFromURL(_ref) {
|
|
|
203
193
|
return function (_x) {
|
|
204
194
|
return _ref2.apply(this, arguments);
|
|
205
195
|
};
|
|
206
|
-
}(), [onUploadButtonClickedAnalytics, mediaProvider, onUploadCommencedAnalytics, onUploadSuccessAnalytics, onUploadFailureAnalytics
|
|
207
|
-
var errorAttributes = {};
|
|
208
|
-
if (!isInputFocused) {
|
|
209
|
-
errorAttributes['aria-relevant'] = 'all';
|
|
210
|
-
errorAttributes['aria-atomic'] = 'false';
|
|
211
|
-
}
|
|
212
|
-
var onBlur = _react.default.useCallback(function () {
|
|
213
|
-
if (!isValidUrl(inputUrl)) {
|
|
214
|
-
setHasUrlError(true);
|
|
215
|
-
}
|
|
216
|
-
setInputFocused(false);
|
|
217
|
-
}, [inputUrl]);
|
|
218
|
-
var onFocus = _react.default.useCallback(function () {
|
|
219
|
-
setInputFocused(true);
|
|
220
|
-
}, []);
|
|
196
|
+
}(), [onUploadButtonClickedAnalytics, mediaProvider, onUploadCommencedAnalytics, onUploadSuccessAnalytics, onUploadFailureAnalytics]);
|
|
221
197
|
var onURLChange = _react.default.useCallback(function (e) {
|
|
222
|
-
var url = e.
|
|
223
|
-
setUrl(url);
|
|
198
|
+
var url = e.currentTarget.value;
|
|
224
199
|
dispatch({
|
|
225
200
|
type: 'reset'
|
|
226
201
|
});
|
|
227
202
|
if (!isValidUrl(url)) {
|
|
228
|
-
setHasUrlError(true);
|
|
229
203
|
return;
|
|
230
|
-
} else {
|
|
231
|
-
setHasUrlError(false);
|
|
232
204
|
}
|
|
233
|
-
if (pasteFlag.current
|
|
205
|
+
if (pasteFlag.current) {
|
|
234
206
|
pasteFlag.current = false;
|
|
235
207
|
uploadExternalMedia(url);
|
|
236
208
|
}
|
|
237
209
|
}, [uploadExternalMedia]);
|
|
238
|
-
var
|
|
210
|
+
var _onPaste = _react.default.useCallback(function (e, inputUrl) {
|
|
239
211
|
// Note: this is a little weird, but the paste event will always be
|
|
240
212
|
// fired before the change event when pasting. We don't really want to
|
|
241
213
|
// duplicate logic by handling pastes separately to changes, so we're
|
|
@@ -245,13 +217,12 @@ function MediaFromURL(_ref) {
|
|
|
245
217
|
if (e.clipboardData.getData('text') !== inputUrl) {
|
|
246
218
|
pasteFlag.current = true;
|
|
247
219
|
}
|
|
248
|
-
}, [
|
|
220
|
+
}, []);
|
|
249
221
|
var onInsert = _react.default.useCallback(function () {
|
|
250
222
|
if (previewState.previewInfo) {
|
|
251
223
|
insertMediaSingle({
|
|
252
224
|
mediaState: previewState.previewInfo,
|
|
253
|
-
inputMethod: _analytics.INPUT_METHOD.MEDIA_PICKER
|
|
254
|
-
insertMediaVia: _analytics.INSERT_MEDIA_VIA.EXTERNAL_UPLOAD
|
|
225
|
+
inputMethod: _analytics.INPUT_METHOD.MEDIA_PICKER
|
|
255
226
|
});
|
|
256
227
|
}
|
|
257
228
|
closeMediaInsertPicker();
|
|
@@ -266,14 +237,6 @@ function MediaFromURL(_ref) {
|
|
|
266
237
|
}
|
|
267
238
|
closeMediaInsertPicker();
|
|
268
239
|
}, [closeMediaInsertPicker, insertExternalMediaSingle, previewState.warning]);
|
|
269
|
-
var onInsertClick = _react.default.useCallback(function () {
|
|
270
|
-
if (previewState.previewInfo) {
|
|
271
|
-
return onInsert();
|
|
272
|
-
}
|
|
273
|
-
if (previewState.warning) {
|
|
274
|
-
return onExternalInsert(inputUrl);
|
|
275
|
-
}
|
|
276
|
-
}, [previewState.previewInfo, previewState.warning, onInsert, onExternalInsert, inputUrl]);
|
|
277
240
|
var onInputKeyPress = _react.default.useCallback(function (event) {
|
|
278
241
|
if (event && event.key === 'Esc') {
|
|
279
242
|
if (dispatchAnalyticsEvent) {
|
|
@@ -303,14 +266,13 @@ function MediaFromURL(_ref) {
|
|
|
303
266
|
}
|
|
304
267
|
closeMediaInsertPicker();
|
|
305
268
|
}, [closeMediaInsertPicker, dispatchAnalyticsEvent]);
|
|
306
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
e.preventDefault();
|
|
269
|
+
return /*#__PURE__*/_react.default.createElement(_form.default, {
|
|
270
|
+
onSubmit: function onSubmit(_ref3, form) {
|
|
271
|
+
var inputUrl = _ref3.inputUrl;
|
|
310
272
|
// This can be triggered from an enter key event on the input even when
|
|
311
273
|
// the button is disabled, so we explicitly do nothing when in loading
|
|
312
274
|
// state.
|
|
313
|
-
if (previewState.isLoading ||
|
|
275
|
+
if (previewState.isLoading || form.getState().invalid) {
|
|
314
276
|
return;
|
|
315
277
|
}
|
|
316
278
|
if (previewState.previewInfo) {
|
|
@@ -320,52 +282,79 @@ function MediaFromURL(_ref) {
|
|
|
320
282
|
return onExternalInsert(inputUrl);
|
|
321
283
|
}
|
|
322
284
|
return uploadExternalMedia(inputUrl);
|
|
323
|
-
}
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
285
|
+
}
|
|
286
|
+
}, function (_ref4) {
|
|
287
|
+
var formProps = _ref4.formProps;
|
|
288
|
+
return /*#__PURE__*/_react.default.createElement(_primitives.Box, (0, _extends2.default)({
|
|
289
|
+
as: "form"
|
|
290
|
+
}, formProps, {
|
|
291
|
+
xcss: FormStyles
|
|
292
|
+
}), /*#__PURE__*/_react.default.createElement(_primitives.Stack, {
|
|
293
|
+
space: "space.150",
|
|
294
|
+
grow: "fill"
|
|
295
|
+
}, /*#__PURE__*/_react.default.createElement(_form.Field, {
|
|
296
|
+
"aria-required": true,
|
|
297
|
+
isRequired: true,
|
|
298
|
+
name: "inputUrl",
|
|
299
|
+
validate: function validate(value) {
|
|
300
|
+
return value && isValidUrl(value) ? undefined : strings.invalidUrl;
|
|
301
|
+
}
|
|
302
|
+
}, function (_ref5) {
|
|
303
|
+
var _ref5$fieldProps = _ref5.fieldProps,
|
|
304
|
+
value = _ref5$fieldProps.value,
|
|
305
|
+
_onChange = _ref5$fieldProps.onChange,
|
|
306
|
+
rest = (0, _objectWithoutProperties2.default)(_ref5$fieldProps, _excluded),
|
|
307
|
+
error = _ref5.error,
|
|
308
|
+
meta = _ref5.meta;
|
|
309
|
+
return /*#__PURE__*/_react.default.createElement(_primitives.Stack, {
|
|
310
|
+
space: "space.150",
|
|
311
|
+
grow: "fill"
|
|
312
|
+
}, /*#__PURE__*/_react.default.createElement(_primitives.Box, null, /*#__PURE__*/_react.default.createElement(_textfield.default, (0, _extends2.default)({}, rest, {
|
|
313
|
+
value: value,
|
|
314
|
+
placeholder: strings.pasteLinkToUpload,
|
|
315
|
+
maxLength: MAX_URL_LENGTH,
|
|
316
|
+
onKeyPress: onInputKeyPress,
|
|
317
|
+
onPaste: function onPaste(event) {
|
|
318
|
+
return _onPaste(event, value);
|
|
319
|
+
},
|
|
320
|
+
onChange: function onChange(value) {
|
|
321
|
+
onURLChange(value);
|
|
322
|
+
_onChange(value);
|
|
323
|
+
}
|
|
324
|
+
})), error && /*#__PURE__*/_react.default.createElement(_form.ErrorMessage, null, /*#__PURE__*/_react.default.createElement(_primitives.Box, (0, _extends2.default)({
|
|
325
|
+
as: "span"
|
|
326
|
+
}, meta.touched || meta.dirty ? {
|
|
327
|
+
'aria-relevant': 'all',
|
|
328
|
+
'aria-atomic': 'false'
|
|
329
|
+
} : {}), error))), !previewState.previewInfo && !previewState.error && !previewState.warning && /*#__PURE__*/_react.default.createElement(_primitives.Flex, {
|
|
330
|
+
xcss: PreviewBoxStyles,
|
|
331
|
+
alignItems: "center",
|
|
332
|
+
justifyContent: "center"
|
|
333
|
+
}, /*#__PURE__*/_react.default.createElement(_new.default, {
|
|
334
|
+
type: "submit",
|
|
335
|
+
isLoading: previewState.isLoading,
|
|
336
|
+
isDisabled: !!error || !meta.dirty,
|
|
337
|
+
iconBefore: _filePreview.default
|
|
338
|
+
}, strings.loadPreview)));
|
|
339
|
+
}), previewState.previewInfo && /*#__PURE__*/_react.default.createElement(_primitives.Inline, {
|
|
340
|
+
alignInline: "center",
|
|
341
|
+
alignBlock: "center",
|
|
342
|
+
xcss: PreviewImageStyles,
|
|
343
|
+
space: "space.200"
|
|
344
|
+
}, /*#__PURE__*/_react.default.createElement(_MediaCard.MediaCard, {
|
|
345
|
+
attrs: previewState.previewInfo,
|
|
346
|
+
mediaProvider: mediaProvider
|
|
347
|
+
})), previewState.error && /*#__PURE__*/_react.default.createElement(_sectionMessage.default, {
|
|
348
|
+
appearance: "error"
|
|
349
|
+
}, strings.errorMessage), previewState.warning && /*#__PURE__*/_react.default.createElement(_sectionMessage.default, {
|
|
350
|
+
appearance: "warning"
|
|
351
|
+
}, strings.warning), /*#__PURE__*/_react.default.createElement(_form.FormFooter, null, /*#__PURE__*/_react.default.createElement(_buttonGroup.default, null, /*#__PURE__*/_react.default.createElement(_new.default, {
|
|
352
|
+
appearance: "subtle",
|
|
353
|
+
onClick: onCancel
|
|
354
|
+
}, strings.cancel), /*#__PURE__*/_react.default.createElement(_new.default, {
|
|
355
|
+
type: "submit",
|
|
356
|
+
appearance: "primary",
|
|
357
|
+
isDisabled: !previewState.previewInfo && !previewState.warning
|
|
358
|
+
}, strings.insert)))));
|
|
359
|
+
});
|
|
371
360
|
}
|
|
@@ -81,10 +81,18 @@ var MediaInsertPicker = exports.MediaInsertPicker = function MediaInsertPicker(_
|
|
|
81
81
|
insertExternalMediaSingle = _ref2.insertExternalMediaSingle,
|
|
82
82
|
insertFile = _ref2.insertFile;
|
|
83
83
|
var _ref3 = (_useSharedPluginState = (_useSharedPluginState2 = (0, _hooks.useSharedPluginState)(api, ['mediaInsert'])) === null || _useSharedPluginState2 === void 0 ? void 0 : _useSharedPluginState2.mediaInsertState) !== null && _useSharedPluginState !== void 0 ? _useSharedPluginState : {},
|
|
84
|
-
isOpen = _ref3.isOpen
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
var
|
|
84
|
+
isOpen = _ref3.isOpen,
|
|
85
|
+
mountInfo = _ref3.mountInfo;
|
|
86
|
+
var targetRef;
|
|
87
|
+
var mountPoint;
|
|
88
|
+
if (mountInfo) {
|
|
89
|
+
targetRef = mountInfo.ref;
|
|
90
|
+
mountPoint = mountInfo.mountPoint;
|
|
91
|
+
} else {
|
|
92
|
+
// If targetRef is undefined, target the selection in the editor
|
|
93
|
+
targetRef = getDomRefFromSelection(editorView, dispatchAnalyticsEvent);
|
|
94
|
+
mountPoint = popupsMountPoint;
|
|
95
|
+
}
|
|
88
96
|
var mediaProvider = (_useSharedPluginState3 = (0, _hooks.useSharedPluginState)(api, ['media'])) === null || _useSharedPluginState3 === void 0 || (_useSharedPluginState3 = _useSharedPluginState3.mediaState) === null || _useSharedPluginState3 === void 0 ? void 0 : _useSharedPluginState3.mediaProvider;
|
|
89
97
|
var intl = (0, _reactIntlNext.useIntl)();
|
|
90
98
|
var focusEditor = (0, _useFocusEditor.useFocusEditor)({
|
|
@@ -122,7 +130,7 @@ var MediaInsertPicker = exports.MediaInsertPicker = function MediaInsertPicker(_
|
|
|
122
130
|
zIndex: _editorSharedStyles.akEditorFloatingDialogZIndex,
|
|
123
131
|
fitHeight: 390,
|
|
124
132
|
fitWidth: 340,
|
|
125
|
-
mountTo:
|
|
133
|
+
mountTo: mountPoint,
|
|
126
134
|
boundariesElement: popupsBoundariesElement,
|
|
127
135
|
handleClickOutside: handleClose(_analytics.INPUT_METHOD.MOUSE),
|
|
128
136
|
handleEscapeKeydown: handleClose(_analytics.INPUT_METHOD.KEYBOARD),
|
package/dist/es2019/actions.js
CHANGED
|
@@ -5,19 +5,19 @@ export const ACTION_CLOSE_POPUP = 'CLOSE_POPUP';
|
|
|
5
5
|
const setPopupMeta = ({
|
|
6
6
|
type,
|
|
7
7
|
tr,
|
|
8
|
-
|
|
8
|
+
mountInfo
|
|
9
9
|
}) => tr.setMeta(pluginKey, {
|
|
10
10
|
type,
|
|
11
|
-
|
|
11
|
+
mountInfo
|
|
12
12
|
});
|
|
13
|
-
export const showMediaInsertPopup = (tr,
|
|
13
|
+
export const showMediaInsertPopup = (tr, mountInfo) => {
|
|
14
14
|
// Log exposure here but don't actually switch anything on it
|
|
15
15
|
editorExperiment('add-media-from-url', true, {
|
|
16
16
|
exposure: true
|
|
17
17
|
});
|
|
18
18
|
return setPopupMeta({
|
|
19
19
|
type: ACTION_OPEN_POPUP,
|
|
20
|
-
|
|
20
|
+
mountInfo,
|
|
21
21
|
tr
|
|
22
22
|
});
|
|
23
23
|
};
|
package/dist/es2019/plugin.js
CHANGED
|
@@ -28,17 +28,17 @@ export const mediaInsertPlugin = ({
|
|
|
28
28
|
}
|
|
29
29
|
const {
|
|
30
30
|
isOpen,
|
|
31
|
-
|
|
31
|
+
mountInfo
|
|
32
32
|
} = pluginKey.getState(editorState) || {};
|
|
33
33
|
return {
|
|
34
34
|
isOpen,
|
|
35
|
-
|
|
35
|
+
mountInfo
|
|
36
36
|
};
|
|
37
37
|
},
|
|
38
38
|
commands: {
|
|
39
|
-
showMediaInsertPopup:
|
|
39
|
+
showMediaInsertPopup: mountInfo => ({
|
|
40
40
|
tr
|
|
41
|
-
}) => showMediaInsertPopup(tr,
|
|
41
|
+
}) => showMediaInsertPopup(tr, mountInfo)
|
|
42
42
|
},
|
|
43
43
|
contentComponent: ({
|
|
44
44
|
editorView,
|
|
@@ -49,8 +49,7 @@ export const mediaInsertPlugin = ({
|
|
|
49
49
|
}) => {
|
|
50
50
|
const insertMediaSingle = ({
|
|
51
51
|
mediaState,
|
|
52
|
-
inputMethod
|
|
53
|
-
insertMediaVia
|
|
52
|
+
inputMethod
|
|
54
53
|
}) => {
|
|
55
54
|
var _api$media$actions$in;
|
|
56
55
|
const {
|
|
@@ -79,7 +78,7 @@ export const mediaInsertPlugin = ({
|
|
|
79
78
|
alt: fileName,
|
|
80
79
|
__fileMimeType: mediaState.fileMimeType
|
|
81
80
|
});
|
|
82
|
-
return (_api$media$actions$in = api === null || api === void 0 ? void 0 : api.media.actions.insertMediaAsMediaSingle(editorView, node, inputMethod, isNestingInQuoteSupported,
|
|
81
|
+
return (_api$media$actions$in = api === null || api === void 0 ? void 0 : api.media.actions.insertMediaAsMediaSingle(editorView, node, inputMethod, isNestingInQuoteSupported, INSERT_MEDIA_VIA.EXTERNAL_UPLOAD)) !== null && _api$media$actions$in !== void 0 ? _api$media$actions$in : false;
|
|
83
82
|
};
|
|
84
83
|
const insertExternalMediaSingle = ({
|
|
85
84
|
url,
|
|
@@ -7,7 +7,7 @@ export const createPlugin = () => {
|
|
|
7
7
|
init() {
|
|
8
8
|
return {
|
|
9
9
|
isOpen: false,
|
|
10
|
-
|
|
10
|
+
mountInfo: undefined
|
|
11
11
|
};
|
|
12
12
|
},
|
|
13
13
|
apply(tr, mediaInsertPluginState) {
|
|
@@ -16,7 +16,7 @@ export const createPlugin = () => {
|
|
|
16
16
|
case ACTION_OPEN_POPUP:
|
|
17
17
|
return {
|
|
18
18
|
isOpen: true,
|
|
19
|
-
|
|
19
|
+
mountInfo: meta.mountInfo
|
|
20
20
|
};
|
|
21
21
|
case ACTION_CLOSE_POPUP:
|
|
22
22
|
return {
|