@seafile/sdoc-editor 3.0.148 → 3.0.149

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.
@@ -79,17 +79,29 @@ var generateImageNode = exports.generateImageNode = function generateImageNode(s
79
79
  };
80
80
  var insertImage = exports.insertImage = function insertImage(editor, imgInfos, selection) {
81
81
  var position = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : _constants2.INSERT_POSITION.CURRENT;
82
- if (!imgInfos) return;
82
+ if (!imgInfos || !Array.isArray(imgInfos)) return;
83
+ var validImgInfos = imgInfos.filter(function (item) {
84
+ return item && typeof item.src === 'string' && item.src.length > 0;
85
+ });
86
+ if (validImgInfos.length === 0) return;
87
+ var validSelection = selection || editor.selection;
88
+ if (!validSelection) {
89
+ var endPoint = _slate.Editor.end(editor, []);
90
+ validSelection = {
91
+ anchor: endPoint,
92
+ focus: endPoint
93
+ };
94
+ _slate.Transforms.select(editor, validSelection);
95
+ }
83
96
  if (position !== _constants2.INSERT_POSITION.AFTER) {
84
97
  if (isInsertImageMenuDisabled(editor)) return;
85
98
  }
86
- var imageNodes = imgInfos.map(function (_ref) {
99
+ var imageNodes = validImgInfos.map(function (_ref) {
87
100
  var src = _ref.src,
88
101
  file_uuid = _ref.file_uuid;
89
102
  var imgSrc = src;
90
103
  return generateImageNode(imgSrc, file_uuid);
91
104
  });
92
- var validSelection = selection || editor.selection;
93
105
  var path = _slate.Editor.path(editor, validSelection);
94
106
  // Insert image inside into multi-column node
95
107
  var topNodeEntry = (0, _core.getTopLevelBlockNode)(editor);
@@ -255,18 +255,20 @@ var Image = function Image(_ref) {
255
255
  setIsShowImagePlaceholder(false);
256
256
  }, []);
257
257
  var onImageLoaded = (0, _react.useCallback)(function () {
258
- if ((0, _helpers.isImageUrlIsFromCopy)(data.src) && !(0, _helpers.isCommentEditor)(editor)) {
258
+ var src = (data === null || data === void 0 ? void 0 : data.src) || '';
259
+ if ((0, _helpers.isImageUrlIsFromCopy)(src) && !(0, _helpers.isCommentEditor)(editor)) {
259
260
  setCopyImageLoading(true);
260
261
  }
261
- }, [data.src, editor, setCopyImageLoading]);
262
+ }, [data === null || data === void 0 ? void 0 : data.src, editor, setCopyImageLoading]);
262
263
  var onImageLoadError = (0, _react.useCallback)(function () {
264
+ var src = (data === null || data === void 0 ? void 0 : data.src) || '';
263
265
  // Check is due to the image is pasted from the clipboard in base64
264
- if (data.src.startsWith('data:image/jpeg;base64')) {
266
+ if (src.startsWith('data:image/jpeg;base64')) {
265
267
  return (0, _helpers.handleBase64Image)(editor, path, data);
266
268
  }
267
269
  setIsShowImagePlaceholder(true);
268
270
  // External network images do not reload after failure to load
269
- if (!data.src.startsWith('http')) {
271
+ if (!src.startsWith('http')) {
270
272
  var eventBus = _eventBus["default"].getInstance();
271
273
  eventBus.subscribe(_constants.INTERNAL_EVENT.RELOAD_IMAGE, reloadImage);
272
274
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seafile/sdoc-editor",
3
- "version": "3.0.148",
3
+ "version": "3.0.149",
4
4
  "main": "dist/index.js",
5
5
  "scripts": {
6
6
  "test": "jest",
@@ -72,5 +72,5 @@
72
72
  "publishConfig": {
73
73
  "access": "public"
74
74
  },
75
- "gitHead": "879bc3e9ed966cd7c7d867988fff1479bf04be61"
75
+ "gitHead": "42dd9ca36703be7ec81692d067313bb16e858754"
76
76
  }