@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.
@@ -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
- updateImageNode(editor, element, imageUrl[0]);
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 wiki or txt ...
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(_react.Suspense, null, /*#__PURE__*/_react.default.createElement(_errorBoundary.default, null, /*#__PURE__*/_react.default.createElement(_basicSdk.CommentProvider, {
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;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seafile/comment-editor",
3
- "version": "0.0.1-alpha.81",
3
+ "version": "0.0.1-alpha.83",
4
4
  "private": false,
5
5
  "description": "This is a comment editor",
6
6
  "main": "dist/index.js",