@seafile/comment-editor 0.0.1-alpha.81 → 0.0.1-alpha.83
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/_i18n/index.js +34 -0
- package/dist/basic-sdk/extension/plugins/image/helpers.js +2 -1
- package/dist/basic-sdk/extension/plugins/image/render-elem.js +2 -2
- package/dist/basic-sdk/extension/plugins/image/use-upload-image.js +4 -3
- package/dist/pages/seafile-comment-editor.js +7 -3
- package/package.json +1 -1
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _reactI18next = require("react-i18next");
|
|
9
|
+
var _i18next = _interopRequireDefault(require("i18next"));
|
|
10
|
+
var _i18nextBrowserLanguagedetector = _interopRequireDefault(require("i18next-browser-languagedetector"));
|
|
11
|
+
var _i18nextHttpBackend = _interopRequireDefault(require("i18next-http-backend"));
|
|
12
|
+
// let { lang } = window.seafileConfig;
|
|
13
|
+
// lang = lang === 'zh-cn' ? 'zh_cn' : lang;
|
|
14
|
+
|
|
15
|
+
_i18next.default.use(_i18nextHttpBackend.default).use(_i18nextBrowserLanguagedetector.default).use(_reactI18next.initReactI18next).init({
|
|
16
|
+
lng: 'zh_cn',
|
|
17
|
+
fallbackLng: 'en',
|
|
18
|
+
ns: ['sdoc-editor'],
|
|
19
|
+
defaultNS: 'sdoc-editor',
|
|
20
|
+
debug: false,
|
|
21
|
+
// console log if debug: true
|
|
22
|
+
|
|
23
|
+
whitelist: ['en', 'zh_CN', 'fr', 'de', 'cs', 'es', 'es-AR', 'es-MX', 'ru'],
|
|
24
|
+
backend: {
|
|
25
|
+
loadPath: '/public/locales/{{ lng }}/{{ ns }}.json'
|
|
26
|
+
},
|
|
27
|
+
interpolation: {
|
|
28
|
+
escapeValue: false // not needed for react!!
|
|
29
|
+
},
|
|
30
|
+
react: {
|
|
31
|
+
wait: true
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
var _default = exports.default = _i18next.default;
|
|
@@ -304,7 +304,8 @@ const handleBase64Image = (editor, path, imgData) => {
|
|
|
304
304
|
});
|
|
305
305
|
};
|
|
306
306
|
exports.handleBase64Image = handleBase64Image;
|
|
307
|
-
const isImageUrlIsFromCopy = url => {
|
|
307
|
+
const isImageUrlIsFromCopy = (url, uploadFromDtable) => {
|
|
308
|
+
if (uploadFromDtable) return false;
|
|
308
309
|
if (url && url.startsWith('http')) return true;
|
|
309
310
|
if (url && url.startsWith('attachment')) return true; // from yuque
|
|
310
311
|
return false;
|
|
@@ -218,10 +218,10 @@ const Image = _ref => {
|
|
|
218
218
|
}
|
|
219
219
|
}, [data, editor]);
|
|
220
220
|
const onImageLoaded = (0, _react.useCallback)(() => {
|
|
221
|
-
if ((0, _helpers.isImageUrlIsFromCopy)(data.src)) {
|
|
221
|
+
if ((0, _helpers.isImageUrlIsFromCopy)(data.src, data === null || data === void 0 ? void 0 : data.upload_from_dtable)) {
|
|
222
222
|
setCopyImageLoading(true);
|
|
223
223
|
}
|
|
224
|
-
}, [data.src, setCopyImageLoading]);
|
|
224
|
+
}, [data.src, data === null || data === void 0 ? void 0 : data.upload_from_dtable, setCopyImageLoading]);
|
|
225
225
|
const onImageLoadError = (0, _react.useCallback)(() => {
|
|
226
226
|
// Check is due to the image is pasted from the clipboard in base64
|
|
227
227
|
if (data.src.startsWith('data:image/jpeg;base64')) {
|
|
@@ -11,11 +11,12 @@ var _slateReact = require("@seafile/slate-react");
|
|
|
11
11
|
var _context = _interopRequireDefault(require("../../../context"));
|
|
12
12
|
var _helpers = require("./helpers");
|
|
13
13
|
var _imageCache = _interopRequireDefault(require("./image-cache"));
|
|
14
|
-
const updateImageNode = async (editor, element, newUrl) => {
|
|
14
|
+
const updateImageNode = async (editor, element, newUrl, uploadFromDtable) => {
|
|
15
15
|
const nodePath = _slateReact.ReactEditor.findPath(editor, element);
|
|
16
16
|
const newData = {
|
|
17
17
|
src: newUrl
|
|
18
18
|
};
|
|
19
|
+
uploadFromDtable && (newData['upload_from_dtable'] = true);
|
|
19
20
|
_slate.Transforms.setNodes(editor, {
|
|
20
21
|
data: newData
|
|
21
22
|
}, {
|
|
@@ -43,9 +44,9 @@ const useUploadImage = _ref => {
|
|
|
43
44
|
try {
|
|
44
45
|
const fileItem = _imageCache.default.getImage(file_uuid);
|
|
45
46
|
const imageUrl = await _context.default.api.uploadLocalImage([fileItem]);
|
|
46
|
-
console.log('imageUrl', imageUrl);
|
|
47
47
|
if (imageUrl && imageUrl[0]) {
|
|
48
|
-
|
|
48
|
+
const uploadFromDtable = imageUrl !== null && imageUrl !== void 0 && imageUrl.upload_from_dtable ? true : false;
|
|
49
|
+
updateImageNode(editor, element, imageUrl[0], uploadFromDtable);
|
|
49
50
|
}
|
|
50
51
|
} catch (error) {
|
|
51
52
|
console.error(error.message);
|
|
@@ -7,7 +7,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.default = void 0;
|
|
9
9
|
var _react = _interopRequireWildcard(require("react"));
|
|
10
|
+
var _reactI18next = require("react-i18next");
|
|
10
11
|
var _basicSdk = require("../basic-sdk");
|
|
12
|
+
var _i18n = _interopRequireDefault(require("../_i18n"));
|
|
11
13
|
var _errorBoundary = _interopRequireDefault(require("../components/error-boundary"));
|
|
12
14
|
const SeafileCommentEditor = _ref => {
|
|
13
15
|
let {
|
|
@@ -16,7 +18,7 @@ const SeafileCommentEditor = _ref => {
|
|
|
16
18
|
// comment or replay
|
|
17
19
|
className = '',
|
|
18
20
|
pluginName = '',
|
|
19
|
-
// sdoc or
|
|
21
|
+
// sdoc or dtable or txt or py ...
|
|
20
22
|
pluginEventBus,
|
|
21
23
|
pluginEvent,
|
|
22
24
|
// Comment editor
|
|
@@ -35,7 +37,9 @@ const SeafileCommentEditor = _ref => {
|
|
|
35
37
|
api
|
|
36
38
|
} = _ref;
|
|
37
39
|
_basicSdk.context.init(settings, api);
|
|
38
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
40
|
+
return /*#__PURE__*/_react.default.createElement(_reactI18next.I18nextProvider, {
|
|
41
|
+
i18n: _i18n.default
|
|
42
|
+
}, /*#__PURE__*/_react.default.createElement(_react.Suspense, null, /*#__PURE__*/_react.default.createElement(_errorBoundary.default, null, /*#__PURE__*/_react.default.createElement(_basicSdk.CommentProvider, {
|
|
39
43
|
type: type,
|
|
40
44
|
className: className,
|
|
41
45
|
pluginName: pluginName,
|
|
@@ -53,6 +57,6 @@ const SeafileCommentEditor = _ref => {
|
|
|
53
57
|
toolMenus: toolMenus,
|
|
54
58
|
closePanel: closePanel,
|
|
55
59
|
addParticipants: addParticipants
|
|
56
|
-
}))));
|
|
60
|
+
})))));
|
|
57
61
|
};
|
|
58
62
|
var _default = exports.default = SeafileCommentEditor;
|