@seafile/comment-editor 0.0.1-alpha.5 → 0.0.1-alpha.51

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.
Files changed (34) hide show
  1. package/dist/_i18n/index.js +37 -0
  2. package/dist/basic-sdk/context.js +8 -21
  3. package/dist/basic-sdk/editor/comment-editor.js +17 -78
  4. package/dist/basic-sdk/extension/commons/color-menu/color-item.js +4 -2
  5. package/dist/basic-sdk/extension/commons/color-menu/index.js +4 -2
  6. package/dist/basic-sdk/extension/commons/select-file-dialog/local-files/index.js +4 -2
  7. package/dist/basic-sdk/extension/plugins/code-block/hover-menu/index.js +5 -3
  8. package/dist/basic-sdk/extension/plugins/file-link/hover-menu/index.js +5 -3
  9. package/dist/basic-sdk/extension/plugins/image/helpers.js +1 -1
  10. package/dist/basic-sdk/extension/plugins/image/hover-menu/index.js +4 -2
  11. package/dist/basic-sdk/extension/plugins/image/render-elem.js +5 -3
  12. package/dist/basic-sdk/extension/plugins/image/use-copy-image.js +1 -1
  13. package/dist/basic-sdk/extension/plugins/image/use-upload-image.js +1 -1
  14. package/dist/basic-sdk/extension/plugins/sdoc-link/hover-menu/index.js +4 -2
  15. package/dist/basic-sdk/extension/plugins/table/menu/color-selector-popover/color-item.js +4 -2
  16. package/dist/basic-sdk/extension/plugins/table/menu/table-menu/index.js +1 -2
  17. package/dist/basic-sdk/extension/plugins/text-align/menu/index.js +1 -1
  18. package/dist/basic-sdk/extension/plugins/text-style/menu/comemnt-editor-menu.js +1 -2
  19. package/dist/basic-sdk/extension/plugins/text-style/menu/index.js +4 -2
  20. package/dist/basic-sdk/extension/plugins/video/render-elem.js +1 -2
  21. package/dist/basic-sdk/extension/toolbar/comment-editor-toolbar/index.js +13 -9
  22. package/dist/basic-sdk/hooks/use-comment.js +24 -16
  23. package/dist/basic-sdk/model/index.js +1 -8
  24. package/dist/basic-sdk/socket/helpers.js +312 -0
  25. package/dist/components/error-boundary/error-page.js +4 -4
  26. package/dist/pages/seafile-comment-editor.js +39 -17
  27. package/package.json +6 -6
  28. package/dist/basic-sdk/layout/comment-layout/index.css +0 -15
  29. package/dist/basic-sdk/layout/comment-layout/index.js +0 -87
  30. package/dist/basic-sdk/layout/comment-layout/resize-width/index.css +0 -38
  31. package/dist/basic-sdk/layout/comment-layout/resize-width/index.js +0 -132
  32. package/dist/basic-sdk/layout/editor-container.js +0 -32
  33. package/dist/basic-sdk/layout/index.js +0 -13
  34. package/dist/basic-sdk/model/notification.js +0 -18
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.getI18n = 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
+ const getI18n = _ref => {
13
+ let {
14
+ lang
15
+ } = _ref;
16
+ _i18next.default.use(_i18nextHttpBackend.default).use(_i18nextBrowserLanguagedetector.default).use(_reactI18next.initReactI18next).init({
17
+ lng: lang,
18
+ fallbackLng: 'en',
19
+ ns: ['sdoc-editor'],
20
+ defaultNS: 'sdoc-editor',
21
+ debug: false,
22
+ // console log if debug: true
23
+
24
+ whitelist: ['en', 'zh_CN', 'fr', 'de', 'cs', 'es', 'es-AR', 'es-MX', 'ru'],
25
+ backend: {
26
+ loadPath: '/public/locales/{{ lng }}/{{ ns }}.json'
27
+ },
28
+ interpolation: {
29
+ escapeValue: false // not needed for react!!
30
+ },
31
+ react: {
32
+ wait: true
33
+ }
34
+ });
35
+ return _i18next.default;
36
+ };
37
+ exports.getI18n = getI18n;
@@ -11,12 +11,12 @@ var _sdocServerApi = _interopRequireDefault(require("./api/sdoc-server-api"));
11
11
  var _seafileApi = _interopRequireDefault(require("./api/seafile-api"));
12
12
  class Context {
13
13
  constructor() {
14
- (0, _defineProperty2.default)(this, "initSettings", () => {
15
- this.settings = window.seafile ? window.seafile : window.seafileConfig;
14
+ (0, _defineProperty2.default)(this, "initSettings", settings => {
15
+ this.settings = settings ? settings : window.seafile ? window.seafile : window.seafileConfig;
16
16
  const {
17
- name,
18
- username,
19
- avatarURL
17
+ name = '',
18
+ username = '',
19
+ avatarURL = ''
20
20
  } = this.settings;
21
21
  const userInfo = {
22
22
  name,
@@ -24,13 +24,6 @@ class Context {
24
24
  avatar_url: avatarURL
25
25
  };
26
26
  this.user = userInfo;
27
- if (this.settings['isSdocRevision']) {
28
- const repoID = this.getSetting('repoID');
29
- const siteRoot = this.getSetting('siteRoot');
30
- const originFilePath = this.getSetting('originFilePath');
31
- const originFileURL = `${siteRoot}lib/${repoID}/file${originFilePath}`;
32
- this.settings['originFileURL'] = originFileURL;
33
- }
34
27
  });
35
28
  (0, _defineProperty2.default)(this, "uploadLocalImage", imageFiles => {
36
29
  const docUuid = this.getSetting('docUuid');
@@ -55,15 +48,9 @@ class Context {
55
48
  this.api = null;
56
49
  this.config = null;
57
50
  }
58
- init() {
59
- this.initSettings(); // lazy init context class
60
- // const server = this.getSetting('serviceUrl');
61
- // const token = this.getSetting('accessToken');
62
- // this.api = new SeafileAPI(server, token);
63
- // const isOpenSocket = this.getSetting('isOpenSocket');
64
- // if (isOpenSocket) {
65
- // this.sdocServerApi = new SDocServerApi(this.settings);
66
- // }
51
+ init(settings, api) {
52
+ this.initSettings(settings);
53
+ this.api = api;
67
54
  }
68
55
  getSettings() {
69
56
  return this.settings;
@@ -14,17 +14,16 @@ var _classnames = _interopRequireDefault(require("classnames"));
14
14
  var _isHotkey = _interopRequireDefault(require("is-hotkey"));
15
15
  var _scrollIntoViewIfNeeded = _interopRequireDefault(require("scroll-into-view-if-needed"));
16
16
  var _constants = require("../constants");
17
- var _context = _interopRequireDefault(require("../context"));
18
17
  var _useCursors = require("../cursor/use-cursors");
19
18
  var _decorates = require("../decorates");
20
19
  var _extension = require("../extension");
20
+ var _insertElementDialog = _interopRequireDefault(require("../extension/commons/insert-element-dialog"));
21
21
  var _constants2 = require("../extension/constants");
22
22
  var _core = require("../extension/core");
23
23
  var _renderCommentEditorElement = _interopRequireDefault(require("../extension/render/render-comment-editor-element"));
24
24
  var _commentEditorToolbar = _interopRequireDefault(require("../extension/toolbar/comment-editor-toolbar"));
25
25
  var _useComment = require("../hooks/use-comment");
26
26
  var _useScrollContext = require("../hooks/use-scroll-context");
27
- var _layout = require("../layout");
28
27
  var _nodeId = _interopRequireDefault(require("../node-id"));
29
28
  var _mdToSlate = _interopRequireDefault(require("../slate-convert/md-to-slate"));
30
29
  var _slateToMd = _interopRequireDefault(require("../slate-convert/slate-to-md"));
@@ -38,29 +37,26 @@ const getSubmitTip = (type, content) => {
38
37
  const DEFAULT_PLACEHOLDER = 'Enter_comment_shift_enter_for_new_line_Enter_to_send';
39
38
  const CommentEditor = _ref => {
40
39
  let {
41
- type,
42
40
  content,
43
- commentContent,
44
41
  placeholder = DEFAULT_PLACEHOLDER,
45
42
  insertContent,
46
- updateContent,
47
- setIsEditing,
43
+ onContentChange,
48
44
  hiddenComment,
49
45
  hiddenUserInfo,
50
- onContentChange,
51
- isContextComment,
52
- closeComment
46
+ toolMenus = ['text_style', _constants2.BLOCKQUOTE, _constants2.UNORDERED_LIST, _constants2.ORDERED_LIST, _constants2.LINK, _constants2.IMAGE],
47
+ closePanel
53
48
  } = _ref;
54
49
  const commentWrapperRef = (0, _react.useRef)();
55
50
  const {
56
51
  t
57
52
  } = (0, _reactI18next.useTranslation)('sdoc-editor');
58
53
  const {
59
- addParticipants,
60
- className
54
+ className,
55
+ userInfo,
56
+ type,
57
+ addParticipants
61
58
  } = (0, _useComment.useComment)();
62
59
  const submitTip = (0, _react.useMemo)(() => getSubmitTip(type, content), [content, type]);
63
- const userInfo = _context.default.getUserInfo();
64
60
  const document = (0, _react.useMemo)(() => {
65
61
  const cursor = {};
66
62
  let elements = null;
@@ -92,23 +88,19 @@ const CommentEditor = _ref => {
92
88
  // init eventHandler
93
89
  // eslint-disable-next-line react-hooks/exhaustive-deps
94
90
  const eventProxy = (0, _react.useMemo)(() => new _eventHandler.default(editor), []);
95
- const updateValue = (0, _react.useCallback)(value => {
96
- if (!value || value.trim() === '') return;
97
- if (!content) return insertContent(value);
98
- updateContent && updateContent(value);
99
- }, [content, insertContent, updateContent]);
100
91
  const onSubmit = (0, _react.useCallback)(event => {
101
92
  event && event.stopPropagation();
102
93
  const mdString = (0, _slateToMd.default)(editor.children);
103
- updateValue(mdString);
104
- addParticipants(userInfo.username);
94
+ if (mdString && mdString.trim()) insertContent(mdString);
95
+ addParticipants && addParticipants(userInfo.username);
105
96
  editor.children = [(0, _core.generateEmptyElement)(_constants2.PARAGRAPH, {
106
97
  placeholder
107
98
  })];
108
99
  _slate.Transforms.select(editor, _slate.Editor.start(editor, []));
109
100
  onContentChange && onContentChange(null);
110
- closeComment && closeComment();
111
- }, [editor, updateValue, addParticipants, userInfo.username, placeholder, onContentChange, closeComment]);
101
+ closePanel && closePanel();
102
+ // eslint-disable-next-line react-hooks/exhaustive-deps
103
+ }, [editor, insertContent, addParticipants, placeholder, onContentChange, closePanel]);
112
104
  const onSubmitByEnterKey = (0, _react.useCallback)(event => {
113
105
  if (!_slateReact.ReactEditor.isFocused(editor)) return;
114
106
  onSubmit(event);
@@ -140,7 +132,6 @@ const CommentEditor = _ref => {
140
132
  const isPreventCancel = isClickOnListContainer || isClickOnCommentEditorContainer || isClickResizeContainer || isSdocContentWrapper;
141
133
  if (isPreventCancel) return;
142
134
  }
143
- setIsEditing && setIsEditing(false);
144
135
  hiddenComment && hiddenComment(false);
145
136
  if (onContentChange) {
146
137
  if (editor.children.find(n => _slate.Node.string(n).trim())) {
@@ -150,17 +141,14 @@ const CommentEditor = _ref => {
150
141
  }
151
142
  }
152
143
  // eslint-disable-next-line react-hooks/exhaustive-deps
153
- }, [setIsEditing]);
144
+ }, []);
154
145
 
155
146
  // set editor children
156
147
  (0, _react.useEffect)(() => {
157
148
  let children = (0, _mdToSlate.default)(content);
158
- if (commentContent) {
159
- children = (0, _mdToSlate.default)(commentContent);
160
- }
161
149
  editor.children = children;
162
150
  _slate.Transforms.select(editor, _slate.Editor.end(editor, []));
163
- }, [editor, content, commentContent]);
151
+ }, [editor, content]);
164
152
 
165
153
  // useMount: focus editor
166
154
  (0, _react.useEffect)(() => {
@@ -230,59 +218,10 @@ const CommentEditor = _ref => {
230
218
  }
231
219
  eventProxy.onKeyDown(event);
232
220
  }, [eventProxy, editor]);
221
+ console.log('toolMenus', toolMenus);
233
222
  return /*#__PURE__*/_react.default.createElement("div", {
234
223
  className: (0, _classnames.default)('comment-editor-wrapper', className),
235
224
  ref: commentWrapperRef
236
- }, type === 'comment' && !hiddenUserInfo && /*#__PURE__*/_react.default.createElement("div", {
237
- className: "comment-editor-user-info"
238
- }, /*#__PURE__*/_react.default.createElement("div", {
239
- className: "comment-editor-user-img"
240
- }, /*#__PURE__*/_react.default.createElement("img", {
241
- src: userInfo.avatar_url,
242
- alt: "",
243
- height: "100%",
244
- width: "100%"
245
- })), /*#__PURE__*/_react.default.createElement("div", {
246
- className: "comment-editor-user-name"
247
- }, userInfo.name)), /*#__PURE__*/_react.default.createElement("div", {
248
- className: "comment-editor-container"
249
- }, /*#__PURE__*/_react.default.createElement("div", {
250
- className: "comment-editor-content"
251
- }, /*#__PURE__*/_react.default.createElement("div", {
252
- ref: commentEditorContainerRef,
253
- className: "article comment-editor",
254
- onClick: handleFocusEditor
255
- }, /*#__PURE__*/_react.default.createElement(_useScrollContext.ScrollContext.Provider, {
256
- value: {
257
- scrollRef: commentEditorContainerRef
258
- }
259
- }, /*#__PURE__*/_react.default.createElement(_slateReact.Slate, {
260
- editor: editor,
261
- value: slateValue,
262
- onChange: setSlateValue
263
- }, /*#__PURE__*/_react.default.createElement(_slateReact.Editable, {
264
- id: "sdoc-editor",
265
- scrollSelectionIntoView: handleScrollIntoView,
266
- cursors: cursors,
267
- renderElement: props => (0, _renderCommentEditorElement.default)({
268
- ...props,
269
- commentType: type
270
- }),
271
- renderLeaf: _extension.renderLeaf,
272
- onMouseDown: onMouseDown,
273
- decorate: decorate,
274
- onCut: eventProxy.onCut,
275
- onCopy: eventProxy.onCopy,
276
- onCompositionStart: eventProxy.onCompositionStart,
277
- onCompositionUpdate: eventProxy.onCompositionUpdate,
278
- onCompositionEnd: eventProxy.onCompositionEnd,
279
- onKeyDown: onKeyDown,
280
- onBeforeInput: eventProxy.onBeforeInput
281
- })))), /*#__PURE__*/_react.default.createElement(_commentEditorToolbar.default, {
282
- editor: editor,
283
- onSubmit: onSubmit,
284
- submitBtnText: t(submitTip),
285
- onCancel: onCancel
286
- }))));
225
+ }, /*#__PURE__*/_react.default.createElement("div", null, "123"));
287
226
  };
288
227
  var _default = exports.default = CommentEditor;
@@ -10,10 +10,12 @@ var _reactI18next = require("react-i18next");
10
10
  var _classnames = _interopRequireDefault(require("classnames"));
11
11
  const ColorItem = _ref => {
12
12
  let {
13
- t,
14
13
  color,
15
14
  lastUsedColor
16
15
  } = _ref;
16
+ const {
17
+ t
18
+ } = (0, _reactI18next.useTranslation)('sdoc-editor');
17
19
  return /*#__PURE__*/_react.default.createElement("div", {
18
20
  className: (0, _classnames.default)('sdoc-color-item', {
19
21
  'selected': lastUsedColor === color.value
@@ -28,4 +30,4 @@ const ColorItem = _ref => {
28
30
  }) : t(color.name)
29
31
  });
30
32
  };
31
- var _default = exports.default = (0, _reactI18next.withTranslation)('sdoc-editor')(ColorItem);
33
+ var _default = exports.default = ColorItem;
@@ -26,7 +26,6 @@ const ColorMenu = _ref => {
26
26
  id,
27
27
  popoverClassName,
28
28
  disabled,
29
- t,
30
29
  setColor,
31
30
  recentUsedColorsKey,
32
31
  text,
@@ -35,6 +34,9 @@ const ColorMenu = _ref => {
35
34
  lastUsedColor,
36
35
  updateLastUsedColor
37
36
  } = _ref;
37
+ const {
38
+ t
39
+ } = (0, _reactI18next.useTranslation)('sdoc-editor');
38
40
  const popoverRef = (0, _react.useRef)(null);
39
41
  const moreColorsPopoverRef = (0, _react.useRef)(null);
40
42
  const [recentUsedColors, setRecentUsedColors] = (0, _react.useState)(_localStorageUtils.default.getItem(recentUsedColorsKey, _constants.DEFAULT_RECENT_USED_LIST));
@@ -205,4 +207,4 @@ const ColorMenu = _ref => {
205
207
  onChange: onChange
206
208
  }))))));
207
209
  };
208
- var _default = exports.default = (0, _reactI18next.withTranslation)('sdoc-editor')(ColorMenu);
210
+ var _default = exports.default = ColorMenu;
@@ -20,10 +20,12 @@ const LocalFiles = _ref => {
20
20
  onSelectedFile,
21
21
  toggle,
22
22
  fileType,
23
- t,
24
23
  searchContent,
25
24
  isOpenSearch
26
25
  } = _ref;
26
+ const {
27
+ t
28
+ } = (0, _reactI18next.useTranslation)('sdoc-editor');
27
29
  const folderRef = (0, _react.useRef)(null);
28
30
  const [expandedFolder, setExpandedFolder] = (0, _react.useState)(new Set([]));
29
31
  const [currentActiveItem, setCurrentActiveItem] = (0, _react.useState)(null);
@@ -188,4 +190,4 @@ const LocalFiles = _ref => {
188
190
  className: "sdoc-file-search-no-result"
189
191
  }, t('No_results')));
190
192
  };
191
- var _default = exports.default = (0, _reactI18next.withTranslation)('sdoc-editor')(LocalFiles);
193
+ var _default = exports.default = LocalFiles;
@@ -55,9 +55,11 @@ const CodeBlockHoverMenu = _ref2 => {
55
55
  onChangeLanguage,
56
56
  onChangeAutoLineWrap,
57
57
  onCopyCodeBlock,
58
- onDeleteCodeBlock,
59
- t
58
+ onDeleteCodeBlock
60
59
  } = _ref2;
60
+ const {
61
+ t
62
+ } = (0, _reactI18next.useTranslation)('sdoc-editor');
61
63
  const {
62
64
  white_space = 'nowrap'
63
65
  } = style;
@@ -254,4 +256,4 @@ const CodeBlockHoverMenu = _ref2 => {
254
256
  ref: langRefs
255
257
  })))));
256
258
  };
257
- var _default = exports.default = (0, _reactI18next.withTranslation)('sdoc-editor')(CodeBlockHoverMenu);
259
+ var _default = exports.default = CodeBlockHoverMenu;
@@ -24,9 +24,11 @@ const FileLinkHoverMenu = _ref => {
24
24
  menuPosition,
25
25
  element,
26
26
  onUnwrapFileLinkNode,
27
- onHideInsertHoverMenu,
28
- t
27
+ onHideInsertHoverMenu
29
28
  } = _ref;
29
+ const {
30
+ t
31
+ } = (0, _reactI18next.useTranslation)('sdoc-editor');
30
32
  const readOnly = (0, _slateReact.useReadOnly)();
31
33
  const [isShowDisplayStylePopover, setIsShowDisplayStylePopover] = (0, _react.useState)(false);
32
34
  const onCopy = (0, _react.useCallback)(e => {
@@ -117,4 +119,4 @@ const FileLinkHoverMenu = _ref => {
117
119
  }));
118
120
  }))));
119
121
  };
120
- var _default = exports.default = (0, _reactI18next.withTranslation)('sdoc-editor')(FileLinkHoverMenu);
122
+ var _default = exports.default = FileLinkHoverMenu;
@@ -291,7 +291,7 @@ const handleBase64Image = (editor, path, imgData) => {
291
291
  const file = new File([blob], `${_slugid.default.nice()}.jpg`, {
292
292
  type: unit8Array.mime
293
293
  });
294
- _context.default.uploadLocalImage([file]).then(res => {
294
+ _context.default.api.uploadLocalImage([file]).then(res => {
295
295
  const _data = {
296
296
  ...imgData,
297
297
  src: res[0]
@@ -27,9 +27,11 @@ const ImageHoverMenu = _ref => {
27
27
  parentNodeEntry,
28
28
  imageCaptionInputRef,
29
29
  onHideImageHoverMenu,
30
- t,
31
30
  readonly
32
31
  } = _ref;
32
+ const {
33
+ t
34
+ } = (0, _reactI18next.useTranslation)('sdoc-editor');
33
35
  const {
34
36
  data,
35
37
  border_type = _constants2.IMAGE_BORDER_TYPE[0].type
@@ -299,4 +301,4 @@ const ImageHoverMenu = _ref => {
299
301
  }
300
302
  })));
301
303
  };
302
- var _default = exports.default = (0, _reactI18next.withTranslation)('sdoc-editor')(ImageHoverMenu);
304
+ var _default = exports.default = ImageHoverMenu;
@@ -33,9 +33,11 @@ const Image = _ref => {
33
33
  className,
34
34
  attributes,
35
35
  children,
36
- isSelected,
37
- t
36
+ isSelected
38
37
  } = _ref;
38
+ const {
39
+ t
40
+ } = (0, _reactI18next.useTranslation)('sdoc-editor');
39
41
  const {
40
42
  data,
41
43
  border_type = _constants3.IMAGE_BORDER_TYPE[0].type
@@ -348,7 +350,7 @@ const Image = _ref => {
348
350
  }
349
351
  })));
350
352
  };
351
- const SdocImage = (0, _reactI18next.withTranslation)('sdoc-editor')(Image);
353
+ const SdocImage = Image;
352
354
  function renderImage(props, editor) {
353
355
  // eslint-disable-next-line react-hooks/rules-of-hooks
354
356
  const isSelected = (0, _slateReact.useSelected)();
@@ -51,7 +51,7 @@ const useCopyImage = _ref => {
51
51
  const file = new File([blob], 'downloaded_image.png', {
52
52
  type: blob.type
53
53
  });
54
- const imageUrl = await _context.default.uploadLocalImage([file]);
54
+ const imageUrl = await _context.default.api.uploadLocalImage([file]);
55
55
  if (imageUrl && imageUrl[0]) {
56
56
  updateImageNode(editor, element, imageUrl[0]);
57
57
  }
@@ -42,7 +42,7 @@ const useUploadImage = _ref => {
42
42
  const uploadCurrentImage = async () => {
43
43
  try {
44
44
  const fileItem = _imageCache.default.getImage(file_uuid);
45
- const imageUrl = await _context.default.uploadLocalImage([fileItem]);
45
+ const imageUrl = await _context.default.api.uploadLocalImage([fileItem]);
46
46
  if (imageUrl && imageUrl[0]) {
47
47
  updateImageNode(editor, element, imageUrl[0]);
48
48
  }
@@ -25,9 +25,11 @@ const SdocLinkHoverMenu = _ref => {
25
25
  element,
26
26
  onUnwrapFileLinkNode,
27
27
  onHideInsertHoverMenu,
28
- t,
29
28
  url
30
29
  } = _ref;
30
+ const {
31
+ t
32
+ } = (0, _reactI18next.useTranslation)('sdoc-editor');
31
33
  const readOnly = (0, _slateReact.useReadOnly)();
32
34
  const [isShowDisplayStylePopover, setIsShowDisplayStylePopover] = (0, _react.useState)(false);
33
35
  const onCopy = (0, _react.useCallback)(e => {
@@ -116,4 +118,4 @@ const SdocLinkHoverMenu = _ref => {
116
118
  }));
117
119
  }))));
118
120
  };
119
- var _default = exports.default = (0, _reactI18next.withTranslation)('sdoc-editor')(SdocLinkHoverMenu);
121
+ var _default = exports.default = SdocLinkHoverMenu;
@@ -10,10 +10,12 @@ var _reactI18next = require("react-i18next");
10
10
  var _classnames = _interopRequireDefault(require("classnames"));
11
11
  const ColorItem = _ref => {
12
12
  let {
13
- t,
14
13
  color,
15
14
  lastUsedColor
16
15
  } = _ref;
16
+ const {
17
+ t
18
+ } = (0, _reactI18next.useTranslation)('sdoc-editor');
17
19
  return /*#__PURE__*/_react.default.createElement("div", {
18
20
  className: (0, _classnames.default)('sdoc-color-item', {
19
21
  'selected': lastUsedColor === color.value
@@ -28,4 +30,4 @@ const ColorItem = _ref => {
28
30
  }) : t(color.name)
29
31
  });
30
32
  };
31
- var _default = exports.default = (0, _reactI18next.withTranslation)('sdoc-editor')(ColorItem);
33
+ var _default = exports.default = ColorItem;
@@ -7,7 +7,6 @@ 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");
11
10
  var _dropdownMenuItem = _interopRequireDefault(require("../../../../commons/dropdown-menu-item"));
12
11
  var _constants = require("../../../../constants");
13
12
  var _helpers = require("../../helpers");
@@ -38,4 +37,4 @@ const TableMenu = _ref => {
38
37
  createTable: createTable
39
38
  }));
40
39
  };
41
- var _default = exports.default = (0, _reactI18next.withTranslation)('sdoc-editor')(TableMenu);
40
+ var _default = exports.default = TableMenu;
@@ -95,4 +95,4 @@ const TextAlignMenu = _ref => {
95
95
  }));
96
96
  }))));
97
97
  };
98
- var _default = exports.default = (0, _reactI18next.withTranslation)('sdoc-editor')(TextAlignMenu);
98
+ var _default = exports.default = TextAlignMenu;
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.default = void 0;
8
8
  var _react = _interopRequireWildcard(require("react"));
9
- var _reactI18next = require("react-i18next");
10
9
  var _commons = require("../../../commons");
11
10
  var _constants = require("../../../constants");
12
11
  var _menusConfig = require("../../../constants/menus-config");
@@ -69,4 +68,4 @@ const CommentEditorTextStyleMenuList = _ref => {
69
68
  key: index
70
69
  }, itemProps))));
71
70
  };
72
- var _default = exports.default = (0, _reactI18next.withTranslation)('sdoc-editor')(CommentEditorTextStyleMenuList);
71
+ var _default = exports.default = CommentEditorTextStyleMenuList;
@@ -25,12 +25,14 @@ var _helpers3 = require("../helpers");
25
25
  const TextStyleMenuList = _ref => {
26
26
  let {
27
27
  editor,
28
- t,
29
28
  isRichEditor,
30
29
  className,
31
30
  idPrefix,
32
31
  readonly
33
32
  } = _ref;
33
+ const {
34
+ t
35
+ } = (0, _reactI18next.useTranslation)('sdoc-editor');
34
36
  let selectedFontSize = (0, _helpers.getFontSize)(editor);
35
37
  let selectedFontSizeValue = selectedFontSize;
36
38
  const enableSeafileAI = _context.default.getSetting('enableSeafileAI');
@@ -159,4 +161,4 @@ const TextStyleMenuList = _ref => {
159
161
  isRichEditor: isRichEditor
160
162
  }));
161
163
  };
162
- var _default = exports.default = (0, _reactI18next.withTranslation)('sdoc-editor')(TextStyleMenuList);
164
+ var _default = exports.default = TextStyleMenuList;
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.renderVideo = renderVideo;
8
8
  var _react = _interopRequireWildcard(require("react"));
9
- var _reactI18next = require("react-i18next");
10
9
  var _slate = require("@seafile/slate");
11
10
  var _slateReact = require("@seafile/slate-react");
12
11
  var _helpers = require("./helpers");
@@ -128,7 +127,7 @@ const Video = _ref => {
128
127
  }
129
128
  }))));
130
129
  };
131
- const SdocVideo = (0, _reactI18next.withTranslation)('sdoc-editor')(Video);
130
+ const SdocVideo = Video;
132
131
  function renderVideo(props, editor) {
133
132
  const {
134
133
  element,
@@ -22,33 +22,37 @@ const CommentEditorToolbar = _ref => {
22
22
  readonly = false,
23
23
  onSubmit,
24
24
  submitBtnText,
25
- onCancel
25
+ onCancel,
26
+ toolMenus
26
27
  } = _ref;
27
28
  (0, _useSelectionUpdate.default)();
28
29
  const eventBus = _eventBus.default.getInstance();
29
30
  return /*#__PURE__*/_react.default.createElement("div", {
30
- className: "comment-editor-toolbar"
31
- }, /*#__PURE__*/_react.default.createElement(_commons.MenuGroup, {
31
+ className: "comment-editor-toolbar",
32
+ style: {
33
+ justifyContent: toolMenus.length === 0 ? 'end' : ''
34
+ }
35
+ }, toolMenus.length !== 0 && /*#__PURE__*/_react.default.createElement(_commons.MenuGroup, {
32
36
  className: "menu-group comment-editor-menu-group"
33
- }, /*#__PURE__*/_react.default.createElement(_comemntEditorMenu.default, {
37
+ }, toolMenus.includes('text_style') && /*#__PURE__*/_react.default.createElement(_comemntEditorMenu.default, {
34
38
  editor: editor,
35
39
  readonly: readonly
36
- }), /*#__PURE__*/_react.default.createElement(_menu.default, {
40
+ }), toolMenus.includes(_constants.BLOCKQUOTE) && /*#__PURE__*/_react.default.createElement(_menu.default, {
37
41
  editor: editor,
38
42
  readonly: readonly
39
- }), /*#__PURE__*/_react.default.createElement(_menu4.default, {
43
+ }), toolMenus.includes(_constants.UNORDERED_LIST) && /*#__PURE__*/_react.default.createElement(_menu4.default, {
40
44
  editor: editor,
41
45
  type: _constants.UNORDERED_LIST,
42
46
  readonly: readonly
43
- }), /*#__PURE__*/_react.default.createElement(_menu4.default, {
47
+ }), toolMenus.includes(_constants.ORDERED_LIST) && /*#__PURE__*/_react.default.createElement(_menu4.default, {
44
48
  editor: editor,
45
49
  type: _constants.ORDERED_LIST,
46
50
  readonly: readonly
47
- }), /*#__PURE__*/_react.default.createElement(_menu3.default, {
51
+ }), toolMenus.includes(_constants.LINK) && /*#__PURE__*/_react.default.createElement(_menu3.default, {
48
52
  editor: editor,
49
53
  readonly: readonly,
50
54
  eventBus: eventBus
51
- }), /*#__PURE__*/_react.default.createElement(_menu2.default, {
55
+ }), toolMenus.includes(_constants.IMAGE) && /*#__PURE__*/_react.default.createElement(_menu2.default, {
52
56
  editor: editor,
53
57
  readonly: readonly,
54
58
  eventBus: eventBus