@seafile/sdoc-editor 2.0.133 → 2.0.134-alpha.1

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.
@@ -13,12 +13,13 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm
13
13
  var _react = _interopRequireWildcard(require("react"));
14
14
  var _reactI18next = require("react-i18next");
15
15
  var _reactstrap = require("reactstrap");
16
+ var _commentEditor = require("@seafile/comment-editor");
16
17
  var _dayjs = _interopRequireDefault(require("dayjs"));
17
18
  var _tooltip = _interopRequireDefault(require("../../components/tooltip"));
18
19
  var _context2 = _interopRequireDefault(require("../../context"));
19
20
  var _mdToHtml = _interopRequireDefault(require("../../slate-convert/md-to-html"));
20
21
  var _notificationHooks = require("../hooks/notification-hooks");
21
- var _commentEditor = _interopRequireDefault(require("./comment-editor"));
22
+ var _useParticipants = require("../hooks/use-participants");
22
23
  var _commentImagePreviewer = _interopRequireDefault(require("./comment-image-previewer"));
23
24
  var CommentItemContent = function CommentItemContent(_ref) {
24
25
  var isActive = _ref.isActive,
@@ -29,6 +30,8 @@ var CommentItemContent = function CommentItemContent(_ref) {
29
30
  onDeleteComment = _ref.onDeleteComment,
30
31
  t = _ref.t,
31
32
  targetId = _ref.targetId;
33
+ var _useParticipantsConte = (0, _useParticipants.useParticipantsContext)(),
34
+ addParticipants = _useParticipantsConte.addParticipants;
32
35
  var _useState = (0, _react.useState)(false),
33
36
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
34
37
  isDropdownOpen = _useState2[0],
@@ -119,6 +122,16 @@ var CommentItemContent = function CommentItemContent(_ref) {
119
122
  setImageUrl(event.target.src);
120
123
  }
121
124
  }, []);
125
+ var commentEditorProps = {
126
+ className: 'pb-3',
127
+ addParticipants: addParticipants,
128
+ content: comment.comment,
129
+ insertContent: updateContent,
130
+ hiddenComment: setIsEditing,
131
+ api: {
132
+ uploadLocalImage: _context2["default"].uploadLocalImage
133
+ }
134
+ };
122
135
  return /*#__PURE__*/_react["default"].createElement("div", {
123
136
  className: "comment-item"
124
137
  }, /*#__PURE__*/_react["default"].createElement("div", {
@@ -187,12 +200,7 @@ var CommentItemContent = function CommentItemContent(_ref) {
187
200
  dangerouslySetInnerHTML: {
188
201
  __html: editorContent
189
202
  }
190
- })), isEditing && /*#__PURE__*/_react["default"].createElement(_commentEditor["default"], {
191
- className: "pb-3",
192
- content: comment.comment,
193
- updateContent: updateContent,
194
- setIsEditing: setIsEditing
195
- }), imageUrl && /*#__PURE__*/_react["default"].createElement(_commentImagePreviewer["default"], {
203
+ })), isEditing && /*#__PURE__*/_react["default"].createElement(_commentEditor.SeafileCommentEditor, commentEditorProps), imageUrl && /*#__PURE__*/_react["default"].createElement(_commentImagePreviewer["default"], {
196
204
  imageUrl: imageUrl,
197
205
  toggle: function toggle() {
198
206
  return setImageUrl('');
@@ -12,11 +12,12 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm
12
12
  var _react = _interopRequireWildcard(require("react"));
13
13
  var _reactI18next = require("react-i18next");
14
14
  var _reactstrap = require("reactstrap");
15
+ var _commentEditor = require("@seafile/comment-editor");
15
16
  var _dayjs = _interopRequireDefault(require("dayjs"));
16
17
  var _context2 = _interopRequireDefault(require("../../context"));
17
18
  var _mdToHtml = _interopRequireDefault(require("../../slate-convert/md-to-html"));
19
+ var _useParticipants = require("../hooks/use-participants");
18
20
  var _commentDeletePopover = _interopRequireDefault(require("./comment-delete-popover"));
19
- var _commentEditor = _interopRequireDefault(require("./comment-editor"));
20
21
  var _commentImagePreviewer = _interopRequireDefault(require("./comment-image-previewer"));
21
22
  var CommentItemReply = function CommentItemReply(_ref) {
22
23
  var isActive = _ref.isActive,
@@ -25,6 +26,8 @@ var CommentItemReply = function CommentItemReply(_ref) {
25
26
  deleteReply = _ref.deleteReply,
26
27
  updateReply = _ref.updateReply,
27
28
  t = _ref.t;
29
+ var _useParticipantsConte = (0, _useParticipants.useParticipantsContext)(),
30
+ addParticipants = _useParticipantsConte.addParticipants;
28
31
  var _useState = (0, _react.useState)(false),
29
32
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
30
33
  isDropdownOpen = _useState2[0],
@@ -101,6 +104,17 @@ var CommentItemReply = function CommentItemReply(_ref) {
101
104
  setImageUrl(event.target.src);
102
105
  }
103
106
  }, []);
107
+ var commentEditorProps = {
108
+ type: 'reply',
109
+ className: 'pb-3',
110
+ addParticipants: addParticipants,
111
+ content: editorContent,
112
+ insertContent: updateContent,
113
+ hiddenComment: setIsEditing,
114
+ api: {
115
+ uploadLocalImage: _context2["default"].uploadLocalImage
116
+ }
117
+ };
104
118
  return /*#__PURE__*/_react["default"].createElement("div", {
105
119
  className: "comment-item",
106
120
  ref: itemRef
@@ -150,13 +164,7 @@ var CommentItemReply = function CommentItemReply(_ref) {
150
164
  dangerouslySetInnerHTML: {
151
165
  __html: editorContent
152
166
  }
153
- })), isEditing && /*#__PURE__*/_react["default"].createElement(_commentEditor["default"], {
154
- className: "pb-3",
155
- type: "reply",
156
- content: editorContent,
157
- updateContent: updateContent,
158
- setIsEditing: setIsEditing
159
- }), isShowDeletePopover && isActive && /*#__PURE__*/_react["default"].createElement(_commentDeletePopover["default"], {
167
+ })), isEditing && /*#__PURE__*/_react["default"].createElement(_commentEditor.SeafileCommentEditor, commentEditorProps), isShowDeletePopover && isActive && /*#__PURE__*/_react["default"].createElement(_commentDeletePopover["default"], {
160
168
  parentDom: itemRef.current,
161
169
  type: "reply",
162
170
  deleteConfirm: _deleteReply,
@@ -14,6 +14,7 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm
14
14
  var _react = _interopRequireWildcard(require("react"));
15
15
  var _reactI18next = require("react-i18next");
16
16
  var _reactstrap = require("reactstrap");
17
+ var _commentEditor = require("@seafile/comment-editor");
17
18
  var _classnames = _interopRequireDefault(require("classnames"));
18
19
  var _dayjs = _interopRequireDefault(require("dayjs"));
19
20
  var _slugid = _interopRequireDefault(require("slugid"));
@@ -21,7 +22,7 @@ var _context2 = _interopRequireDefault(require("../../context"));
21
22
  var _useSelectionPosition = require("../../hooks/use-selection-position");
22
23
  var _helper = require("../helper");
23
24
  var _useCommentContext2 = require("../hooks/comment-hooks/use-comment-context");
24
- var _commentEditor = _interopRequireDefault(require("./comment-editor"));
25
+ var _useParticipants = require("../hooks/use-participants");
25
26
  var _commentItemWrapper = _interopRequireDefault(require("./comment-item-wrapper"));
26
27
  require("./comment-list.css");
27
28
  var CommentList = function CommentList(_ref) {
@@ -41,6 +42,8 @@ var CommentList = function CommentList(_ref) {
41
42
  t = _ref.t;
42
43
  var commentPopover = (0, _react.useRef)(null);
43
44
  var commentDetailRef = (0, _react.useRef)(null);
45
+ var _useParticipantsConte = (0, _useParticipants.useParticipantsContext)(),
46
+ addParticipants = _useParticipantsConte.addParticipants;
44
47
  var position = (0, _useSelectionPosition.useCommentListPosition)(activeElementIds, isContextComment, isClickedContextComment, commentedDom, commentDetail, closeComment);
45
48
  var _useCommentContext = (0, _useCommentContext2.useCommentContext)(),
46
49
  dispatch = _useCommentContext.dispatch;
@@ -202,12 +205,15 @@ var CommentList = function CommentList(_ref) {
202
205
  style: {
203
206
  paddingTop: isEmptyComment ? '16px' : ''
204
207
  }
205
- }, isEmptyComment && /*#__PURE__*/_react["default"].createElement(_commentEditor["default"], {
208
+ }, isEmptyComment && /*#__PURE__*/_react["default"].createElement(_commentEditor.SeafileCommentEditor, {
209
+ addParticipants: addParticipants,
206
210
  type: "comment",
207
211
  insertContent: addNewComment,
208
212
  hiddenComment: hiddenComment,
209
- isContextComment: isContextComment,
210
- closeComment: closeComment
213
+ closePanel: closeComment,
214
+ api: {
215
+ uploadLocalImage: _context2["default"].uploadLocalImage
216
+ }
211
217
  }), !isEmptyComment && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, !isActiveEditor && /*#__PURE__*/_react["default"].createElement(_reactstrap.Input, {
212
218
  value: inputContent !== null && inputContent !== void 0 && inputContent.trim() ? '.....' : '',
213
219
  readOnly: true,
@@ -215,29 +221,36 @@ var CommentList = function CommentList(_ref) {
215
221
  onFocus: function onFocus() {
216
222
  setActiveCommentKey(index);
217
223
  }
218
- }), isActiveEditor && /*#__PURE__*/_react["default"].createElement(_commentEditor["default"], {
224
+ }), isActiveEditor && /*#__PURE__*/_react["default"].createElement(_commentEditor.SeafileCommentEditor, {
219
225
  type: "reply",
220
226
  placeholder: 'Enter_reply_shift_Enter_for_new_line_Enter_to_send',
221
- commentContent: commentInputs[item.id] || '',
227
+ addParticipants: addParticipants,
228
+ content: commentInputs[item.id] || '',
222
229
  insertContent: function insertContent(value) {
223
230
  return handleReplySubmit(value, item.id);
224
231
  },
225
232
  onContentChange: function onContentChange(content) {
226
233
  return handleInputChange(item.id, content);
227
234
  },
228
- hiddenComment: hiddenComment
235
+ hiddenComment: hiddenComment,
236
+ api: {
237
+ uploadLocalImage: _context2["default"].uploadLocalImage
238
+ }
229
239
  }))));
230
240
  }), Object.values(commentDetail).length === 0 && /*#__PURE__*/_react["default"].createElement("div", {
231
241
  className: "non-global-comment-input-wrapper",
232
242
  style: {
233
243
  paddingTop: isEmptyComment ? '16px' : ''
234
244
  }
235
- }, isEmptyComment && /*#__PURE__*/_react["default"].createElement(_commentEditor["default"], {
245
+ }, isEmptyComment && /*#__PURE__*/_react["default"].createElement(_commentEditor.SeafileCommentEditor, {
236
246
  type: "comment",
247
+ addParticipants: addParticipants,
237
248
  insertContent: addNewComment,
238
249
  hiddenComment: hiddenComment,
239
- isContextComment: isContextComment,
240
- closeComment: closeComment
250
+ closePanel: closeComment,
251
+ api: {
252
+ uploadLocalImage: _context2["default"].uploadLocalImage
253
+ }
241
254
  }), !isEmptyComment && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, !showEditor && /*#__PURE__*/_react["default"].createElement(_reactstrap.Input, {
242
255
  value: inputContent !== null && inputContent !== void 0 && inputContent.trim() ? '.....' : '',
243
256
  readOnly: true,
@@ -245,15 +258,19 @@ var CommentList = function CommentList(_ref) {
245
258
  onFocus: function onFocus() {
246
259
  setShowEditor(true);
247
260
  }
248
- }), showEditor && /*#__PURE__*/_react["default"].createElement(_commentEditor["default"], {
261
+ }), showEditor && /*#__PURE__*/_react["default"].createElement(_commentEditor.SeafileCommentEditor, {
249
262
  type: "reply",
250
263
  placeholder: 'Enter_reply_shift_Enter_for_new_line_Enter_to_send',
251
- commentContent: inputContent,
264
+ addParticipants: addParticipants,
265
+ content: inputContent,
252
266
  insertContent: replyComment,
253
267
  onContentChange: function onContentChange(content) {
254
268
  setInputContent(content);
255
269
  },
256
- hiddenComment: hiddenComment
270
+ hiddenComment: hiddenComment,
271
+ api: {
272
+ uploadLocalImage: _context2["default"].uploadLocalImage
273
+ }
257
274
  }))));
258
275
  };
259
276
  var _default = exports["default"] = (0, _reactI18next.withTranslation)('sdoc-editor')(CommentList);
@@ -6,8 +6,11 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports["default"] = void 0;
8
8
  var _react = _interopRequireDefault(require("react"));
9
+ var _commentEditor = require("@seafile/comment-editor");
9
10
  var _classnames = _interopRequireDefault(require("classnames"));
10
- var _commentEditor = _interopRequireDefault(require("../comment-editor"));
11
+ var _context = _interopRequireDefault(require("../../../context"));
12
+ var _useCollaborators2 = require("../../../hooks/use-collaborators");
13
+ var _useParticipants = require("../../hooks/use-participants");
11
14
  var GlobalCommentEditor = function GlobalCommentEditor(_ref) {
12
15
  var isScrollDisplayed = _ref.isScrollDisplayed,
13
16
  globalCommentContent = _ref.globalCommentContent,
@@ -15,20 +18,34 @@ var GlobalCommentEditor = function GlobalCommentEditor(_ref) {
15
18
  insertDocComment = _ref.insertDocComment,
16
19
  hiddenCommentEditor = _ref.hiddenCommentEditor,
17
20
  onContentChange = _ref.onContentChange;
21
+ var _useParticipantsConte = (0, _useParticipants.useParticipantsContext)(),
22
+ addParticipants = _useParticipantsConte.addParticipants,
23
+ participants = _useParticipantsConte.participants;
24
+ var _useCollaborators = (0, _useCollaborators2.useCollaborators)(),
25
+ collaborators = _useCollaborators.collaborators;
26
+ console.log('participants', participants);
27
+ console.log('collaborators', collaborators);
28
+ var commentEditorProps = {
29
+ type: type,
30
+ className: 'sdoc-doc-comment-editor',
31
+ hiddenUserInfo: true,
32
+ content: globalCommentContent,
33
+ insertContent: insertDocComment,
34
+ onContentChange: onContentChange,
35
+ hiddenComment: hiddenCommentEditor,
36
+ addParticipants: addParticipants,
37
+ collaborators: [],
38
+ participants: [],
39
+ api: {
40
+ uploadLocalImage: _context["default"].uploadLocalImage
41
+ }
42
+ };
18
43
  return /*#__PURE__*/_react["default"].createElement("div", {
19
44
  className: (0, _classnames["default"])('sdoc-doc-comment-editor-container', 'sdoc-comment-list-container', {
20
45
  'scrolled': isScrollDisplayed
21
46
  })
22
47
  }, /*#__PURE__*/_react["default"].createElement("div", {
23
48
  className: "sdoc-doc-comment-editor-content"
24
- }, /*#__PURE__*/_react["default"].createElement(_commentEditor["default"], {
25
- type: type,
26
- className: "sdoc-doc-comment-editor",
27
- commentContent: globalCommentContent,
28
- hiddenUserInfo: true,
29
- insertContent: insertDocComment,
30
- hiddenComment: hiddenCommentEditor,
31
- onContentChange: onContentChange
32
- })));
49
+ }, /*#__PURE__*/_react["default"].createElement(_commentEditor.SeafileCommentEditor, commentEditorProps)));
33
50
  };
34
51
  var _default = exports["default"] = GlobalCommentEditor;
@@ -87,7 +87,7 @@ function AIModule(_ref) {
87
87
  var selectElements = (0, _helpers.handleSelectElements)(editor);
88
88
  var _content = '';
89
89
  if (selectElements) {
90
- if ((0, _helpers.validateNestedStructure)(selectElements[0])) {
90
+ if (selectElements.length === 1 && (0, _helpers.validateNestedStructure)(selectElements[0])) {
91
91
  // list.length === 1
92
92
  _content = window.getSelection().toString();
93
93
  } else {
@@ -5,7 +5,12 @@
5
5
  min-width: 360px;
6
6
  position: relative;
7
7
  right: 0;
8
- animation: rightdrawer .3s 1ms;
8
+ margin-right: -360px;
9
+ transition: margin-right .3s ease-in-out;
10
+ }
11
+
12
+ .sdoc-content-right-panel-wrapper.open {
13
+ margin-right: 0;
9
14
  }
10
15
 
11
16
  .sdoc-content-right-panel-wrapper .sdoc-content-right-panel {
@@ -14,13 +19,3 @@
14
19
  overflow: hidden;
15
20
  border-left: 1px solid #d8d8d8;
16
21
  }
17
-
18
- @keyframes rightdrawer {
19
- 0% {
20
- transform: translate(100%);
21
- }
22
-
23
- 100% {
24
- transform: translate(0);
25
- }
26
- }
@@ -60,12 +60,15 @@ var RightPanel = function RightPanel(_ref) {
60
60
  (0, _react.useEffect)(function () {
61
61
  var isShowGlobalComments = displayPluginName === 'sdoc-comment' ? true : false;
62
62
  var commentBox = document.querySelector('.sdoc-content-right-panel-wrapper');
63
- var editorEl = document.querySelector('#sdoc-scroll-container');
63
+ var editorEl = document.querySelector('.sdoc-scroll-container');
64
64
  var commentWidth = commentBox === null || commentBox === void 0 ? void 0 : commentBox.offsetWidth;
65
- editorEl.scrollTo({
66
- left: commentWidth + 36,
67
- behavior: 'smooth'
68
- });
65
+ commentBox === null || commentBox === void 0 ? void 0 : commentBox.classList.add('open');
66
+ setTimeout(function () {
67
+ editorEl.scrollTo({
68
+ left: commentWidth + 36,
69
+ behavior: 'smooth'
70
+ });
71
+ }, 300);
69
72
  var settings = _localStorageUtils["default"].getItem(_constants.SDOC_STORAGE) || {};
70
73
  _localStorageUtils["default"].setItem(_constants.SDOC_STORAGE, (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, settings), {}, {
71
74
  isShowGlobalComments: isShowGlobalComments
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seafile/sdoc-editor",
3
- "version": "2.0.133",
3
+ "version": "2.0.134-alpha.1",
4
4
  "main": "dist/index.js",
5
5
  "scripts": {
6
6
  "test": "jest",
@@ -17,6 +17,7 @@
17
17
  "license": "ISC",
18
18
  "description": "",
19
19
  "dependencies": {
20
+ "@seafile/comment-editor": "^0.0.1-alpha.32",
20
21
  "@seafile/print-js": "1.6.6",
21
22
  "@seafile/react-image-lightbox": "4.0.2",
22
23
  "@seafile/slate": "0.91.8",
@@ -69,6 +70,5 @@
69
70
  },
70
71
  "publishConfig": {
71
72
  "access": "public"
72
- },
73
- "gitHead": "6725af00b4ed23abf5615990ee7e561b279d754d"
74
- }
73
+ }
74
+ }
package/LICENSE.txt DELETED
@@ -1,13 +0,0 @@
1
- Copyright (c) 2025 Seafile Ltd.
2
-
3
- Licensed under the Apache License, Version 2.0 (the "License");
4
- you may not use this file except in compliance with the License.
5
- You may obtain a copy of the License at
6
-
7
- http://www.apache.org/licenses/LICENSE-2.0
8
-
9
- Unless required by applicable law or agreed to in writing, software
10
- distributed under the License is distributed on an "AS IS" BASIS,
11
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- See the License for the specific language governing permissions and
13
- limitations under the License.