@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.
- package/dist/extension/constants/font.js +2 -1
- package/dist/extension/plugins/html/plugin.js +3 -0
- package/dist/extension/plugins/image/render-elem.js +7 -0
- package/dist/extension/plugins/image/use-copy-image.js +14 -0
- package/dist/extension/plugins/image/use-upload-image.js +6 -4
- package/package.json +2 -2
|
@@ -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
|
-
|
|
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:
|
|
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
|
|
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.
|
|
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": "
|
|
73
|
+
"gitHead": "3a1d0398a9d7919e6574399d0032f07bfac944ed"
|
|
74
74
|
}
|