@seafile/sdoc-editor 2.0.104 → 2.0.105

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.
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.SDOC_FONT_SIZE = exports.RECENT_USED_FONTS_KEY = exports.GOOGLE_FONT_CLASS = exports.FONT_SIZE = exports.FONT = exports.DEFAULT_FONT = void 0;
8
+ exports.SDOC_FONT_SIZE = exports.RECENT_USED_FONTS_KEY = exports.RECENT_PASTE_HTML_CONTENT = exports.GOOGLE_FONT_CLASS = exports.FONT_SIZE = exports.FONT = exports.DEFAULT_FONT = void 0;
9
9
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/defineProperty"));
10
10
  var ELEMENT_TYPE = _interopRequireWildcard(require("./element-type"));
11
11
  // font family
@@ -88,6 +88,7 @@ var FONT_SIZE = exports.FONT_SIZE = [{
88
88
  var GOOGLE_FONT_CLASS = exports.GOOGLE_FONT_CLASS = 'sdoc-google-font';
89
89
  var DEFAULT_FONT = exports.DEFAULT_FONT = 'default_font';
90
90
  var RECENT_USED_FONTS_KEY = exports.RECENT_USED_FONTS_KEY = 'sdoc-recent-used-fonts';
91
+ var RECENT_PASTE_HTML_CONTENT = exports.RECENT_PASTE_HTML_CONTENT = 'sdoc-recent-paste-html-content';
91
92
  var FONT = exports.FONT = [
92
93
  // { name: '\u5fae\u8f6f\u96c5\u9ed1', fontFamilyName: { mac: 'Microsoft YaHei', windows: '\u5fae\u8f6f\u96c5\u9ed1' }, supportFontWeight: FONT_WEIGHT_100_400_700, isSystemOwn: true, usuallyFontFamilyName: SANS_SERIF }, // 微软雅黑
93
94
  // { name: '\u5b8b\u4f53', fontFamilyName: { mac: 'SimSun', windows: '\u5b8b\u4f53' }, supportFontWeight: FONT_WEIGHT_100_400_700_800, isSystemOwn: true, usuallyFontFamilyName: SERIF }, // 宋体
@@ -6,7 +6,9 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports["default"] = void 0;
8
8
  var _slugid = _interopRequireDefault(require("slugid"));
9
+ var _localStorageUtils = _interopRequireDefault(require("../../../utils/local-storage-utils"));
9
10
  var _constants = require("../../constants");
11
+ var _font = require("../../constants/font");
10
12
  var _core = require("../../core");
11
13
  var _helper = require("./helper");
12
14
  var withHtml = function withHtml(editor) {
@@ -37,6 +39,7 @@ var withHtml = function withHtml(editor) {
37
39
  var htmlContent = data.getData('text/html') || '';
38
40
  if (htmlContent) {
39
41
  var content = (0, _helper.deserializeHtml)(htmlContent);
42
+ _localStorageUtils["default"].setItem(_font.RECENT_PASTE_HTML_CONTENT, htmlContent);
40
43
  editor.insertFragment(content);
41
44
  return;
42
45
  }
@@ -51,6 +51,7 @@ var Image = function Image(_ref) {
51
51
  };
52
52
  var readOnly = (0, _slateReact.useReadOnly)();
53
53
  var imageRef = (0, _react.useRef)(null);
54
+ var urlRef = (0, _react.useRef)(element === null || element === void 0 ? void 0 : element.data);
54
55
  var resizerRef = (0, _react.useRef)(null);
55
56
  var imageCaptionInputRef = (0, _react.useRef)(null);
56
57
  var scrollRef = (0, _useScrollContext.useScrollContext)();
@@ -247,6 +248,12 @@ var Image = function Image(_ref) {
247
248
  }
248
249
  // eslint-disable-next-line react-hooks/exhaustive-deps
249
250
  }, []);
251
+ (0, _react.useEffect)(function () {
252
+ if (urlRef.current !== (element === null || element === void 0 ? void 0 : element.data)) {
253
+ urlRef.current = element === null || element === void 0 ? void 0 : element.data;
254
+ setIsShowImagePlaceholder(false);
255
+ }
256
+ }, [element === null || element === void 0 ? void 0 : element.data]);
250
257
  var onSetCaption = (0, _react.useCallback)(function (e) {
251
258
  var path = _slateReact.ReactEditor.findPath(editor, element);
252
259
  var newData = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, data), {}, {
@@ -13,6 +13,8 @@ var _react = require("react");
13
13
  var _slate = require("@seafile/slate");
14
14
  var _slateReact = require("@seafile/slate-react");
15
15
  var _context3 = _interopRequireDefault(require("../../../context"));
16
+ var _localStorageUtils = _interopRequireDefault(require("../../../utils/local-storage-utils"));
17
+ var _font = require("../../constants/font");
16
18
  var _helpers = require("./helpers");
17
19
  var updateImageNode = /*#__PURE__*/function () {
18
20
  var _ref = (0, _asyncToGenerator2["default"])(/*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee(editor, element, newUrl) {
@@ -68,6 +70,8 @@ var useCopyImage = function useCopyImage(_ref2) {
68
70
  if (isCopyError) return;
69
71
  if (isComment) return;
70
72
  if (!(0, _helpers.isImageUrlIsFromCopy)(url)) return;
73
+ var cacheContent = _localStorageUtils["default"].getItem(_font.RECENT_PASTE_HTML_CONTENT);
74
+ if (!cacheContent || JSON.stringify(cacheContent).indexOf(url) === -1) return;
71
75
  var downloadAndUploadImages = /*#__PURE__*/function () {
72
76
  var _ref3 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee2(url) {
73
77
  var response, blob, file, imageUrl;
@@ -129,6 +133,16 @@ var useCopyImage = function useCopyImage(_ref2) {
129
133
  downloadAndUploadImages(url);
130
134
  // eslint-disable-next-line react-hooks/exhaustive-deps
131
135
  }, []);
136
+ (0, _react.useEffect)(function () {
137
+ if (!(0, _helpers.isImageUrlIsFromCopy)(data.src)) {
138
+ setIsLoading(false);
139
+ setIsCopyError(false);
140
+ }
141
+ if ((0, _helpers.isImageUrlIsFromCopy)(data.src) && data.is_copy_error === true) {
142
+ setIsLoading(false);
143
+ setIsCopyError(true);
144
+ }
145
+ }, [data.is_copy_error, data.src]);
132
146
  return {
133
147
  isCopyImageLoading: isLoading,
134
148
  setCopyImageLoading: setIsLoading,
@@ -16,24 +16,25 @@ 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 url, nodePath, newData;
19
+ var isComment, 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)({
23
+ isComment = (0, _helpers.isCommentEditor)(editor);
24
+ url = isComment ? (0, _helpers.getImageURL)({
24
25
  src: newUrl
25
26
  }, editor) : newUrl;
26
27
  nodePath = _slateReact.ReactEditor.findPath(editor, element);
27
28
  newData = {
28
29
  src: url,
29
- is_comment: true
30
+ is_comment: isComment
30
31
  };
31
32
  _slate.Transforms.setNodes(editor, {
32
33
  data: newData
33
34
  }, {
34
35
  at: nodePath
35
36
  });
36
- case 4:
37
+ case 5:
37
38
  case "end":
38
39
  return _context.stop();
39
40
  }
@@ -59,6 +60,7 @@ var useUploadImage = function useUploadImage(_ref2) {
59
60
  var url = data.src,
60
61
  file_uuid = data.file_uuid;
61
62
  if (!(0, _helpers.isImageUrlIsFromUpload)(url)) return;
63
+ if (!_imageCache["default"].getImage(file_uuid)) return;
62
64
  setIsLoading(true);
63
65
  var uploadCurrentImage = /*#__PURE__*/function () {
64
66
  var _ref3 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee2() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seafile/sdoc-editor",
3
- "version": "2.0.104",
3
+ "version": "2.0.105",
4
4
  "main": "dist/index.js",
5
5
  "scripts": {
6
6
  "test": "jest",
@@ -70,5 +70,5 @@
70
70
  "publishConfig": {
71
71
  "access": "public"
72
72
  },
73
- "gitHead": "ab76134ff681c6ce99b8cfddc9cde542fbdc53de"
73
+ "gitHead": "3a1d0398a9d7919e6574399d0032f07bfac944ed"
74
74
  }