@seafile/sdoc-editor 3.0.148 → 3.0.150

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.
@@ -17,6 +17,21 @@ var _slugid = _interopRequireDefault(require("slugid"));
17
17
  var _constants = require("../../constants");
18
18
  var _core = require("../../core");
19
19
  var _helpers = require("./helpers");
20
+ var insertBreakCodeLine = function insertBreakCodeLine(editor) {
21
+ if (!editor.selection) return false;
22
+ var selectedNode = (0, _core.getSelectedNodeByType)(editor, _constants.CODE_LINE);
23
+ if (!selectedNode) return false;
24
+ if (_slate.Range.isExpanded(editor.selection)) {
25
+ _slate.Transforms["delete"](editor);
26
+ }
27
+ _slate.Transforms.splitNodes(editor, {
28
+ always: true,
29
+ match: function match(n) {
30
+ return (0, _core.getNodeType)(n) === _constants.CODE_LINE;
31
+ }
32
+ });
33
+ return true;
34
+ };
20
35
  var withCodeBlock = function withCodeBlock(editor) {
21
36
  var normalizeNode = editor.normalizeNode,
22
37
  insertFragment = editor.insertFragment,
@@ -185,11 +200,7 @@ var withCodeBlock = function withCodeBlock(editor) {
185
200
  }
186
201
  if ((0, _isHotkey["default"])('enter', event)) {
187
202
  event.preventDefault();
188
- var selectedNode = (0, _core.getSelectedNodeByType)(newEditor, _constants.CODE_LINE);
189
- var line = (0, _core.generateEmptyElement)(_constants.CODE_LINE);
190
- _slate.Transforms.insertNodes(editor, line, {
191
- at: selectedNode[1]
192
- });
203
+ insertBreakCodeLine(newEditor);
193
204
  return;
194
205
  }
195
206
  if ((0, _isHotkey["default"])('tab', event)) {
@@ -226,12 +237,7 @@ var withCodeBlock = function withCodeBlock(editor) {
226
237
  }
227
238
  };
228
239
  newEditor.insertBreak = function () {
229
- var selectedNode = (0, _core.getSelectedNodeByType)(newEditor, _constants.CODE_LINE);
230
- if (selectedNode != null && (0, _core.isCursorAtBlockStart)(newEditor)) {
231
- var line = (0, _core.generateEmptyElement)(_constants.CODE_LINE);
232
- _slate.Transforms.insertNodes(editor, line, {
233
- at: selectedNode[1]
234
- });
240
+ if (insertBreakCodeLine(newEditor)) {
235
241
  return;
236
242
  }
237
243
  insertBreak();
@@ -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.150",
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": "492fba18a01710ac7219fb4326b9f7d5108da3fd"
76
76
  }