@seafile/sdoc-editor 2.0.85 → 2.0.87

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/LICENSE.txt ADDED
@@ -0,0 +1,13 @@
1
+ Copyright (c) 2025 Seafile Ltd.
2
+
3
+ Licensed under the Apache License, Version 2.0 (the "License");
4
+ you may not use this file except in compliance with the License.
5
+ You may obtain a copy of the License at
6
+
7
+ http://www.apache.org/licenses/LICENSE-2.0
8
+
9
+ Unless required by applicable law or agreed to in writing, software
10
+ distributed under the License is distributed on an "AS IS" BASIS,
11
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ See the License for the specific language governing permissions and
13
+ limitations under the License.
@@ -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.updateImage = exports.selectImageWhenSelectPartial = exports.resetCursor = exports.removeImageBlockNode = exports.queryCopyMoveProgressView = exports.isInsertImageMenuDisabled = exports.isImageUrlIsFromUpload = exports.isImageUrlIsFromCopy = exports.insertImageFiles = exports.insertImage = exports.hasSdocImages = exports.handleBase64Image = exports.getSingleImageFromFragment = exports.getImageURL = exports.getImageData = exports.getDigitalSignImgUrl = exports.getColumnByKey = exports.generateImageNode = exports.generateImageInfos = void 0;
7
+ exports.updateImage = exports.selectImageWhenSelectPartial = exports.resetCursor = exports.removeImageBlockNode = exports.queryCopyMoveProgressView = exports.isInsertImageMenuDisabled = exports.isImageUrlIsFromUpload = exports.isImageUrlIsFromCopy = exports.isCommentEditor = exports.insertImageFiles = exports.insertImage = exports.hasSdocImages = exports.handleBase64Image = exports.getSingleImageFromFragment = exports.getImageURL = exports.getImageData = exports.getDigitalSignImgUrl = exports.getColumnByKey = exports.generateImageNode = exports.generateImageInfos = void 0;
8
8
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/toConsumableArray"));
9
9
  var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/regeneratorRuntime"));
10
10
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/asyncToGenerator"));
@@ -84,10 +84,7 @@ var insertImage = exports.insertImage = function insertImage(editor, imgInfos, s
84
84
  var imageNodes = imgInfos.map(function (_ref) {
85
85
  var src = _ref.src,
86
86
  file_uuid = _ref.file_uuid;
87
- var isCommentEditor = editor.editorType === _constants.COMMENT_EDITOR;
88
- var imgSrc = isCommentEditor ? getImageURL({
89
- src: src
90
- }) : src;
87
+ var imgSrc = src;
91
88
  return generateImageNode(imgSrc, file_uuid);
92
89
  });
93
90
  var validSelection = selection || editor.selection;
@@ -320,6 +317,9 @@ var isImageUrlIsFromUpload = exports.isImageUrlIsFromUpload = function isImageUr
320
317
  if (url && url.startsWith('blob:http')) return true;
321
318
  return false;
322
319
  };
320
+ var isCommentEditor = exports.isCommentEditor = function isCommentEditor(editor) {
321
+ return editor.editorType === _constants.COMMENT_EDITOR;
322
+ };
323
323
  var generateImageInfos = exports.generateImageInfos = function generateImageInfos(files) {
324
324
  var newFiles = Array.from(files);
325
325
  var imgInfos = newFiles.filter(function (item) {
@@ -230,10 +230,10 @@ var Image = function Image(_ref) {
230
230
  }
231
231
  }, [data, editor]);
232
232
  var onImageLoaded = (0, _react.useCallback)(function () {
233
- if ((0, _helpers.isImageUrlIsFromCopy)(data.src)) {
233
+ if ((0, _helpers.isImageUrlIsFromCopy)(data.src) && !(0, _helpers.isCommentEditor)(editor)) {
234
234
  setCopyImageLoading(true);
235
235
  }
236
- }, [data.src, setCopyImageLoading]);
236
+ }, [data.src, editor, setCopyImageLoading]);
237
237
  var onImageLoadError = (0, _react.useCallback)(function () {
238
238
  // Check is due to the image is pasted from the clipboard in base64
239
239
  if (data.src.startsWith('data:image/jpeg;base64')) {
@@ -49,7 +49,8 @@ var useCopyImage = function useCopyImage(_ref2) {
49
49
  element = _ref2.element;
50
50
  var data = element.data;
51
51
  var _data$is_copy_error = data.is_copy_error,
52
- is_copy_error = _data$is_copy_error === void 0 ? false : _data$is_copy_error;
52
+ is_copy_error = _data$is_copy_error === void 0 ? false : _data$is_copy_error,
53
+ isComment = data.is_comment;
53
54
  var _useState = (0, _react.useState)(),
54
55
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
55
56
  isLoading = _useState2[0],
@@ -61,6 +62,7 @@ var useCopyImage = function useCopyImage(_ref2) {
61
62
  (0, _react.useEffect)(function () {
62
63
  var url = data.src;
63
64
  if (isCopyError) return;
65
+ if (isComment) return;
64
66
  if (!(0, _helpers.isImageUrlIsFromCopy)(url)) return;
65
67
  var downloadAndUploadImages = /*#__PURE__*/function () {
66
68
  var _ref3 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee2(url) {
@@ -16,20 +16,24 @@ var _helpers = require("./helpers");
16
16
  var _imageCache = _interopRequireDefault(require("./image-cache"));
17
17
  var updateImageNode = /*#__PURE__*/function () {
18
18
  var _ref = (0, _asyncToGenerator2["default"])(/*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee(editor, element, newUrl) {
19
- var nodePath, newData;
19
+ var url, nodePath, newData;
20
20
  return (0, _regeneratorRuntime2["default"])().wrap(function _callee$(_context) {
21
21
  while (1) switch (_context.prev = _context.next) {
22
22
  case 0:
23
+ url = (0, _helpers.isCommentEditor)(editor) ? (0, _helpers.getImageURL)({
24
+ src: newUrl
25
+ }, editor) : newUrl;
23
26
  nodePath = _slateReact.ReactEditor.findPath(editor, element);
24
27
  newData = {
25
- src: newUrl
28
+ src: url,
29
+ is_comment: true
26
30
  };
27
31
  _slate.Transforms.setNodes(editor, {
28
32
  data: newData
29
33
  }, {
30
34
  at: nodePath
31
35
  });
32
- case 3:
36
+ case 4:
33
37
  case "end":
34
38
  return _context.stop();
35
39
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seafile/sdoc-editor",
3
- "version": "2.0.85",
3
+ "version": "2.0.87",
4
4
  "main": "dist/index.js",
5
5
  "scripts": {
6
6
  "test": "jest",
@@ -55,9 +55,9 @@
55
55
  "url-parse": "1.5.10"
56
56
  },
57
57
  "peerDependencies": {
58
- "i18next": "^17.0.13",
59
- "i18next-browser-languagedetector": "^3.0.3",
60
- "i18next-xhr-backend": "^3.1.2",
58
+ "i18next": ">=17.0.13",
59
+ "i18next-browser-languagedetector": ">=3.0.3",
60
+ "i18next-xhr-backend": ">=3.1.2",
61
61
  "react": "^18.3.0",
62
62
  "react-dom": "^18.3.1",
63
63
  "react-i18next": "^10.12.2",
@@ -70,5 +70,5 @@
70
70
  "publishConfig": {
71
71
  "access": "public"
72
72
  },
73
- "gitHead": "6bcb4a7202427ce4abcf0996c5631824c925b643"
73
+ "gitHead": "1db85acfd8e8a86b9e563cfa187dc80c88115b24"
74
74
  }