@seafile/comment-editor 0.0.1-alpha.2 → 0.0.1-alpha.21

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 (72) hide show
  1. package/dist/basic-sdk/assets/css/layout.css +1 -45
  2. package/dist/basic-sdk/comment/utils.js +39 -0
  3. package/dist/basic-sdk/context.js +2 -1
  4. package/dist/basic-sdk/editor/comment-editor.css +138 -0
  5. package/dist/basic-sdk/{comment/components → editor}/comment-editor.js +43 -33
  6. package/dist/basic-sdk/extension/plugins/image/helpers.js +1 -1
  7. package/dist/basic-sdk/extension/plugins/image/use-copy-image.js +1 -1
  8. package/dist/basic-sdk/extension/plugins/image/use-upload-image.js +1 -1
  9. package/dist/basic-sdk/extension/plugins/text-style/menu/index.js +1 -2
  10. package/dist/basic-sdk/hooks/use-comment.js +16 -183
  11. package/dist/basic-sdk/index.js +3 -10
  12. package/dist/index.js +0 -12
  13. package/dist/pages/seafile-comment-editor.js +34 -14
  14. package/package.json +1 -1
  15. package/dist/assets/css/plugin-editor.css +0 -7
  16. package/dist/assets/css/simple-viewer.css +0 -6
  17. package/dist/basic-sdk/comment/components/comment-all-participants/index.css +0 -83
  18. package/dist/basic-sdk/comment/components/comment-all-participants/index.js +0 -67
  19. package/dist/basic-sdk/comment/components/comment-all-participants/participant-avatar.js +0 -43
  20. package/dist/basic-sdk/comment/components/comment-context-menu/index.css +0 -16
  21. package/dist/basic-sdk/comment/components/comment-context-menu/index.js +0 -43
  22. package/dist/basic-sdk/comment/components/comment-context-menu/menu-item.js +0 -57
  23. package/dist/basic-sdk/comment/components/comment-delete-popover.js +0 -80
  24. package/dist/basic-sdk/comment/components/comment-item-collapse-wrapper.js +0 -160
  25. package/dist/basic-sdk/comment/components/comment-item-content.js +0 -154
  26. package/dist/basic-sdk/comment/components/comment-item-reply.js +0 -124
  27. package/dist/basic-sdk/comment/components/comment-item-resolved-reply.js +0 -38
  28. package/dist/basic-sdk/comment/components/comment-item-wrapper.js +0 -364
  29. package/dist/basic-sdk/comment/components/comment-list.css +0 -422
  30. package/dist/basic-sdk/comment/components/comment-list.js +0 -216
  31. package/dist/basic-sdk/comment/components/comment-operation/index.css +0 -26
  32. package/dist/basic-sdk/comment/components/comment-operation/index.js +0 -31
  33. package/dist/basic-sdk/comment/components/comment-participants-editor/index.css +0 -132
  34. package/dist/basic-sdk/comment/components/comment-participants-editor/index.js +0 -69
  35. package/dist/basic-sdk/comment/components/comment-participants-editor/searched-collaborators.js +0 -62
  36. package/dist/basic-sdk/comment/components/comment-participants-editor/selected-participants.js +0 -48
  37. package/dist/basic-sdk/comment/components/editor-comment.js +0 -183
  38. package/dist/basic-sdk/comment/components/elements-comment-count/element-comment-count.js +0 -64
  39. package/dist/basic-sdk/comment/components/elements-comment-count/index.css +0 -29
  40. package/dist/basic-sdk/comment/components/elements-comment-count/index.js +0 -49
  41. package/dist/basic-sdk/comment/components/global-comment/global-comment-body-header.js +0 -88
  42. package/dist/basic-sdk/comment/components/global-comment/global-comment-header.js +0 -89
  43. package/dist/basic-sdk/comment/components/global-comment/index.css +0 -328
  44. package/dist/basic-sdk/comment/components/global-comment/index.js +0 -217
  45. package/dist/basic-sdk/comment/components/index.js +0 -21
  46. package/dist/basic-sdk/comment/components/style.css +0 -40
  47. package/dist/basic-sdk/comment/helper.js +0 -184
  48. package/dist/basic-sdk/comment/hooks/comment-hooks/use-comment-context.js +0 -20
  49. package/dist/basic-sdk/comment/hooks/comment-hooks/use-comment-list.js +0 -45
  50. package/dist/basic-sdk/comment/hooks/comment-hooks/use-comment-mount.js +0 -57
  51. package/dist/basic-sdk/comment/hooks/notification-hooks/index.js +0 -25
  52. package/dist/basic-sdk/comment/hooks/notification-hooks/use-notification-context.js +0 -20
  53. package/dist/basic-sdk/comment/hooks/notification-hooks/use-notification-mount.js +0 -70
  54. package/dist/basic-sdk/comment/hooks/use-participants.js +0 -26
  55. package/dist/basic-sdk/comment/index.js +0 -21
  56. package/dist/basic-sdk/comment/reducer/comment-reducer.js +0 -353
  57. package/dist/basic-sdk/comment/reducer/notification-reducer.js +0 -89
  58. package/dist/basic-sdk/comment/utils/get-event-transfer.js +0 -77
  59. package/dist/basic-sdk/comment/utils/index.js +0 -281
  60. package/dist/basic-sdk/comment/utils/notification-utils.js +0 -62
  61. package/dist/basic-sdk/layout/comment-layout/index.css +0 -15
  62. package/dist/basic-sdk/layout/comment-layout/index.js +0 -87
  63. package/dist/basic-sdk/layout/comment-layout/resize-width/index.css +0 -38
  64. package/dist/basic-sdk/layout/comment-layout/resize-width/index.js +0 -132
  65. package/dist/basic-sdk/layout/editor-container.js +0 -32
  66. package/dist/basic-sdk/layout/index.js +0 -13
  67. package/dist/basic-sdk/socket/helpers.js +0 -299
  68. package/dist/basic-sdk/socket/index.js +0 -20
  69. package/dist/basic-sdk/socket/socket-client.js +0 -211
  70. package/dist/basic-sdk/socket/socket-manager.js +0 -386
  71. package/dist/basic-sdk/socket/with-socket-io.js +0 -73
  72. /package/dist/basic-sdk/comment/{constants/index.js → constants.js} +0 -0
@@ -4,10 +4,10 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- Object.defineProperty(exports, "CommentLayout", {
7
+ Object.defineProperty(exports, "CommentEditor", {
8
8
  enumerable: true,
9
9
  get: function () {
10
- return _commentLayout.default;
10
+ return _commentEditor.default;
11
11
  }
12
12
  });
13
13
  Object.defineProperty(exports, "CommentProvider", {
@@ -148,26 +148,19 @@ Object.defineProperty(exports, "withNodeId", {
148
148
  return _nodeId.default;
149
149
  }
150
150
  });
151
- Object.defineProperty(exports, "withSocketIO", {
152
- enumerable: true,
153
- get: function () {
154
- return _socket.withSocketIO;
155
- }
156
- });
157
151
  var _fileLoading = _interopRequireDefault(require("./components/file-loading"));
158
152
  var _loading = _interopRequireDefault(require("./components/loading"));
159
153
  var _toast = _interopRequireDefault(require("./components/toast"));
160
154
  var _tooltip = _interopRequireDefault(require("./components/tooltip"));
161
155
  var _constants = require("./constants");
162
156
  var _context = _interopRequireDefault(require("./context"));
157
+ var _commentEditor = _interopRequireDefault(require("./editor/comment-editor"));
163
158
  var _extension = require("./extension");
164
159
  var _dropdownMenuItem = _interopRequireDefault(require("./extension/commons/dropdown-menu-item"));
165
160
  var _menuShortcutIndicator = _interopRequireDefault(require("./extension/commons/menu-shortcut-indicator"));
166
161
  var _useComment = require("./hooks/use-comment");
167
- var _commentLayout = _interopRequireDefault(require("./layout/comment-layout"));
168
162
  var _nodeId = _interopRequireDefault(require("./node-id"));
169
163
  var _slateConvert = require("./slate-convert");
170
- var _socket = require("./socket");
171
164
  var _commonUtils = require("./utils/common-utils");
172
165
  var _eventBus = _interopRequireDefault(require("./utils/event-bus"));
173
166
  var _localStorageUtils = _interopRequireDefault(require("./utils/local-storage-utils"));
package/dist/index.js CHANGED
@@ -22,18 +22,6 @@ Object.defineProperty(exports, "SeafileCommentEditor", {
22
22
  return _seafileCommentEditor.default;
23
23
  }
24
24
  });
25
- Object.defineProperty(exports, "createCommentEditor", {
26
- enumerable: true,
27
- get: function () {
28
- return _basicSdk.createCommentEditor;
29
- }
30
- });
31
- Object.defineProperty(exports, "withNodeId", {
32
- enumerable: true,
33
- get: function () {
34
- return _basicSdk.withNodeId;
35
- }
36
- });
37
25
  var _basicSdk = require("./basic-sdk");
38
26
  var _constants = require("./constants");
39
27
  var _seafileCommentEditor = _interopRequireDefault(require("./pages/seafile-comment-editor"));
@@ -1,36 +1,56 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.default = void 0;
9
- var _react = _interopRequireWildcard(require("react"));
8
+ var _react = _interopRequireDefault(require("react"));
10
9
  var _reactI18next = require("react-i18next");
11
10
  var _basicSdk = require("../basic-sdk");
12
11
  var _errorBoundary = _interopRequireDefault(require("../components/error-boundary"));
13
12
  const SeafileCommentEditor = _ref => {
14
13
  let {
15
- editor,
16
- pluginName = '',
14
+ // Provider
15
+ type,
16
+ // comment or replay
17
+ userInfo,
17
18
  className = '',
19
+ pluginName = '',
20
+ // sdoc or wiki or txt ...
18
21
  pluginEventBus,
19
22
  pluginEvent,
20
- api,
21
- onCloseCommentPanel
23
+ // Comment editor
24
+ content,
25
+ updateContent,
26
+ insertContent,
27
+ onContentChange,
28
+ hiddenUserInfo,
29
+ hiddenComment,
30
+ closeComment,
31
+ setIsEditing,
32
+ addParticipants,
33
+ // api
34
+ api
22
35
  } = _ref;
23
- _basicSdk.context.init();
36
+ _basicSdk.context.init(api);
24
37
  return /*#__PURE__*/_react.default.createElement(_errorBoundary.default, null, /*#__PURE__*/_react.default.createElement(_basicSdk.CommentProvider, {
25
- editor: editor,
26
- pluginName: pluginName,
38
+ type: type,
39
+ userInfo: userInfo,
27
40
  className: className,
41
+ pluginName: pluginName,
28
42
  pluginEventBus: pluginEventBus,
29
- pluginEvent: pluginEvent,
30
- api: api,
31
- onCloseCommentPanel: onCloseCommentPanel
32
- }, /*#__PURE__*/_react.default.createElement(_basicSdk.CommentLayout, {
33
- editor: editor
43
+ pluginEvent: pluginEvent
44
+ }, /*#__PURE__*/_react.default.createElement(_basicSdk.CommentEditor, {
45
+ content: content,
46
+ updateContent: updateContent,
47
+ insertContent: insertContent,
48
+ onContentChange: onContentChange,
49
+ hiddenUserInfo: hiddenUserInfo,
50
+ hiddenComment: hiddenComment,
51
+ closeComment: closeComment,
52
+ setIsEditing: setIsEditing,
53
+ addParticipants: addParticipants
34
54
  })));
35
55
  };
36
56
  var _default = exports.default = (0, _reactI18next.withTranslation)('sdoc-editor')(SeafileCommentEditor);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seafile/comment-editor",
3
- "version": "0.0.1-alpha.2",
3
+ "version": "0.0.1-alpha.21",
4
4
  "private": false,
5
5
  "description": "This is a comment editor",
6
6
  "main": "dist/index.js",
@@ -1,7 +0,0 @@
1
- .sdoc-editor-container .sdoc-editor-content.no-outline .sdoc-article-container {
2
- margin: 0 auto !important;
3
- }
4
-
5
- html {
6
- scrollbar-width: none;
7
- }
@@ -1,6 +0,0 @@
1
- .sdoc-share-permission {
2
- font-size: 12px;
3
- padding: 2px 6px;
4
- border-radius: 4px;
5
- border: solid 1px rgba(0, 0, 0, 0.12);
6
- }
@@ -1,83 +0,0 @@
1
- .comment-drawer .comments-panel-body__header .comments-participants-container {
2
- width: fit-content;
3
- max-width: 100%;
4
- height: 42px;
5
- padding-top: 6px;
6
- display: flex;
7
- align-items: center;
8
- position: relative;
9
- }
10
-
11
- .comment-drawer .comments-panel-body__header .comments-participants-editor-target {
12
- position: absolute;
13
- left: -1px;
14
- top: 0;
15
- z-index: -1;
16
- height: 100%;
17
- width: 1px;
18
- background-color: transparent;
19
- }
20
-
21
- .comment-drawer .comments-panel-body__header .comment-participant-avatar {
22
- border-radius: 50%;
23
- vertical-align: middle;
24
- margin-right: -0.5rem;
25
- }
26
-
27
- .comment-drawer .comments-panel-body__header .comment-participant-avatar img {
28
- width: 28px;
29
- height: 28px;
30
- border: 2px solid #fff;
31
- line-height: 2rem;
32
- border-radius: 50%;
33
- display: inline-block;
34
- background: #ced4da no-repeat center/cover;
35
- position: relative;
36
- text-align: center;
37
- color: #868e96;
38
- font-weight: 600;
39
- vertical-align: bottom;
40
- font-size: .875rem;
41
- user-select: none;
42
- }
43
-
44
- .comment-drawer .comments-panel-body__header .add-comments-participants {
45
- position: relative;
46
- bottom: -3px;
47
- cursor: pointer;
48
- margin-right: -0.5rem;
49
- height: 20px;
50
- width: 20px;
51
- background-color: #fff;
52
- border: 1px solid #fff;
53
- border-radius: 50%;
54
- display: flex;
55
- align-items: center;
56
- justify-content: center;
57
- }
58
-
59
- .comment-drawer .add-comments-participants .sdocfont {
60
- font-size: 16px;
61
- color: #ff8000;
62
- border-radius: 50%;
63
- }
64
-
65
- .comment-drawer .comment-participants-more {
66
- position: absolute;
67
- top: 0;
68
- left: 0;
69
- width: 28px;
70
- height: 28px;
71
- border-radius: 50%;
72
- display: flex;
73
- align-items: center;
74
- justify-content: center;
75
- overflow: hidden;
76
- background-color: rgba(0, 0, 0, .6);
77
- border: 2px solid #fff;
78
- }
79
-
80
- .comment-drawer .comment-participants-more .sdocfont {
81
- color: #fff;
82
- font-size: 12px;
83
- }
@@ -1,67 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
- var _react = _interopRequireWildcard(require("react"));
10
- var _reactI18next = require("react-i18next");
11
- var _slateReact = require("@seafile/slate-react");
12
- var _tooltip = _interopRequireDefault(require("../../../components/tooltip"));
13
- var _useParticipants = require("../../hooks/use-participants");
14
- var _commentParticipantsEditor = _interopRequireDefault(require("../comment-participants-editor"));
15
- var _participantAvatar = _interopRequireDefault(require("./participant-avatar"));
16
- require("./index.css");
17
- const CommentAllParticipants = () => {
18
- const popoverRef = (0, _react.useRef)();
19
- const {
20
- participants
21
- } = (0, _useParticipants.useParticipantsContext)();
22
- const editor = (0, _slateReact.useSlateStatic)();
23
- const {
24
- t
25
- } = (0, _reactI18next.useTranslation)('sdoc-editor');
26
- const addParticipantId = 'sdoc-add-participants';
27
- const commentsParticipantsId = 'sdoc-comments-participants';
28
- const [isDidMount, setDidMount] = (0, _react.useState)(false);
29
- (0, _react.useEffect)(() => {
30
- setDidMount(true);
31
- }, []);
32
- const toggle = (0, _react.useCallback)(() => {
33
- popoverRef.current && popoverRef.current.toggle();
34
-
35
- // eslint-disable-next-line react-hooks/exhaustive-deps
36
- }, [popoverRef.current]);
37
- const participantsCount = participants.length;
38
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
39
- className: "comments-participants-container"
40
- }, /*#__PURE__*/_react.default.createElement("div", {
41
- className: "comments-participants-editor-target",
42
- id: commentsParticipantsId
43
- }), participants.slice(0, 14).map((participant, index) => {
44
- const {
45
- username
46
- } = participant;
47
- return /*#__PURE__*/_react.default.createElement(_participantAvatar.default, {
48
- key: username,
49
- participant: participant,
50
- index: index,
51
- showMore: participantsCount > 13 && index === 13
52
- });
53
- }), /*#__PURE__*/_react.default.createElement("div", {
54
- className: "add-comments-participants",
55
- id: addParticipantId,
56
- onClick: toggle
57
- }, /*#__PURE__*/_react.default.createElement("i", {
58
- className: "sdocfont sdoc-add"
59
- })), isDidMount && /*#__PURE__*/_react.default.createElement(_tooltip.default, {
60
- target: addParticipantId
61
- }, t('Add_participants'))), isDidMount && /*#__PURE__*/_react.default.createElement(_commentParticipantsEditor.default, {
62
- target: commentsParticipantsId,
63
- ref: popoverRef,
64
- editor: editor
65
- }));
66
- };
67
- var _default = exports.default = CommentAllParticipants;
@@ -1,43 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
- var _react = _interopRequireWildcard(require("react"));
10
- var _classnames = _interopRequireDefault(require("classnames"));
11
- var _tooltip = _interopRequireDefault(require("../../../components/tooltip"));
12
- const ParticipantAvatar = _ref => {
13
- let {
14
- participant,
15
- index,
16
- showMore
17
- } = _ref;
18
- const [showTooltip, setShowTooltip] = (0, _react.useState)(false);
19
- (0, _react.useEffect)(() => {
20
- setShowTooltip(true);
21
- }, []);
22
- const {
23
- name,
24
- avatar_url
25
- } = participant;
26
- const id = `comment-participant-avatar-${index}-${Math.floor(Math.random() * 1000)}`;
27
- return /*#__PURE__*/_react.default.createElement("div", {
28
- className: (0, _classnames.default)('comment-participant-avatar', {
29
- 'position-relative': showMore
30
- }),
31
- id: id
32
- }, /*#__PURE__*/_react.default.createElement("img", {
33
- src: avatar_url,
34
- alt: ""
35
- }), showTooltip && /*#__PURE__*/_react.default.createElement(_tooltip.default, {
36
- target: id
37
- }, name), showMore && /*#__PURE__*/_react.default.createElement("div", {
38
- className: "comment-participants-more"
39
- }, /*#__PURE__*/_react.default.createElement("i", {
40
- className: "sdocfont sdoc-more"
41
- })));
42
- };
43
- var _default = exports.default = ParticipantAvatar;
@@ -1,16 +0,0 @@
1
- .menu-group-item.sdoc-comment-menu-container {
2
- width: auto;
3
- color: #212529;
4
- font-size: 14px;
5
- }
6
-
7
- .sdoc-comment-menu-item .sdoc-comments {
8
- margin-right: 4px;
9
- }
10
-
11
- .sdoc-context-menu-divider {
12
- margin-right: 8px;
13
- border-left: 1px solid #e5e5e5;
14
- width: 1px;
15
- height: 24px;
16
- }
@@ -1,43 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
- var _react = _interopRequireWildcard(require("react"));
10
- var _constants = require("../../../constants");
11
- var _eventBus = _interopRequireDefault(require("../../../utils/event-bus"));
12
- var _menuItem = _interopRequireDefault(require("./menu-item"));
13
- require("./index.css");
14
- const CommentContextMenu = _ref => {
15
- let {
16
- isRichEditor
17
- } = _ref;
18
- const onCommentClick = (0, _react.useCallback)(event => {
19
- // Make context toolbar disappear
20
- const contextToolBarDom = document.querySelector('.sdoc-context-toolbar');
21
- if (contextToolBarDom) {
22
- contextToolBarDom.removeAttribute('style');
23
- }
24
- const eventBus = _eventBus.default.getInstance();
25
- eventBus.dispatch(_constants.INTERNAL_EVENT.ADD_CONTEXT_COMMENT);
26
- }, []);
27
- const commentProps = {
28
- id: 'context-toolbar-comment',
29
- isRichEditor,
30
- className: 'menu-group-item sdoc-comment-menu-container',
31
- disabled: false,
32
- isActive: false,
33
- onMouseDown: onCommentClick,
34
- iconClass: 'sdocfont sdoc-comments',
35
- text: 'Comment',
36
- ariaLabel: 'Add_Comment',
37
- type: 'sdoc-add-comment'
38
- };
39
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
40
- className: "sdoc-context-menu-divider"
41
- }), /*#__PURE__*/_react.default.createElement(_menuItem.default, commentProps));
42
- };
43
- var _default = exports.default = CommentContextMenu;
@@ -1,57 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
- var _react = _interopRequireWildcard(require("react"));
10
- var _reactI18next = require("react-i18next");
11
- var _classnames = _interopRequireDefault(require("classnames"));
12
- var _tooltip = _interopRequireDefault(require("../../../components/tooltip"));
13
- const MenuItem = _ref => {
14
- let {
15
- isRichEditor = true,
16
- className = 'menu-group-item',
17
- disabled,
18
- isActive,
19
- type,
20
- onMouseDown,
21
- id,
22
- text,
23
- ariaLabel,
24
- iconClass
25
- } = _ref;
26
- const {
27
- t
28
- } = (0, _reactI18next.useTranslation)('sdoc-editor');
29
- const onClick = (0, _react.useCallback)(event => {
30
- if (disabled) return;
31
- onMouseDown(event, type);
32
-
33
- // eslint-disable-next-line react-hooks/exhaustive-deps
34
- }, [disabled, type]);
35
- const validClassName = (0, _classnames.default)('', className, {
36
- 'btn btn-icon btn-secondary btn-active': !isRichEditor,
37
- 'rich-icon-btn': isRichEditor,
38
- 'rich-icon-btn-disabled': isRichEditor && disabled,
39
- 'rich-icon-btn-hover': isRichEditor && !disabled
40
- });
41
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("button", {
42
- id: id,
43
- type: "button",
44
- "aria-label": ariaLabel,
45
- className: validClassName,
46
- disabled: disabled,
47
- "data-active": isActive,
48
- onClick: onClick
49
- }, /*#__PURE__*/_react.default.createElement("span", {
50
- className: "sdoc-comment-menu-item"
51
- }, /*#__PURE__*/_react.default.createElement("span", {
52
- className: iconClass
53
- }), /*#__PURE__*/_react.default.createElement("span", null, t(text)))), /*#__PURE__*/_react.default.createElement(_tooltip.default, {
54
- target: id
55
- }, t(ariaLabel)));
56
- };
57
- var _default = exports.default = MenuItem;
@@ -1,80 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
- var _react = _interopRequireWildcard(require("react"));
10
- var _reactI18next = require("react-i18next");
11
- var _reactstrap = require("reactstrap");
12
- var _isHotkey = _interopRequireDefault(require("is-hotkey"));
13
- var _utils = require("../utils");
14
- require("./comment-list.css");
15
- const CommentDeletePopover = _ref => {
16
- let {
17
- type,
18
- setIsShowDeletePopover,
19
- deleteConfirm,
20
- targetId,
21
- parentDom
22
- } = _ref;
23
- const popoverRef = (0, _react.useRef)(null);
24
- const hide = (0, _react.useCallback)(event => {
25
- if (popoverRef.current && !(0, _utils.getEventClassName)(event).includes('popover') && !popoverRef.current.contains(event.target)) {
26
- setIsShowDeletePopover(false);
27
- event.preventDefault();
28
- event.stopPropagation();
29
- return false;
30
- }
31
- }, [setIsShowDeletePopover]);
32
- const onHotKey = (0, _react.useCallback)(event => {
33
- if ((0, _isHotkey.default)('esc', event)) {
34
- event.preventDefault();
35
- setIsShowDeletePopover(false);
36
- }
37
- }, [setIsShowDeletePopover]);
38
- (0, _react.useEffect)(() => {
39
- document.addEventListener('click', hide, true);
40
- document.addEventListener('keydown', onHotKey);
41
- return () => {
42
- document.removeEventListener('click', hide, true);
43
- document.removeEventListener('keydown', onHotKey);
44
- };
45
- // eslint-disable-next-line react-hooks/exhaustive-deps
46
- }, []);
47
- const {
48
- t
49
- } = (0, _reactI18next.useTranslation)('sdoc-editor');
50
- const onDeleteCancel = (0, _react.useCallback)(event => {
51
- event.stopPropagation();
52
- setIsShowDeletePopover(false);
53
- }, [setIsShowDeletePopover]);
54
- const handleConfirm = (0, _react.useCallback)(event => {
55
- event.stopPropagation();
56
- deleteConfirm();
57
- }, [deleteConfirm]);
58
- return /*#__PURE__*/_react.default.createElement(_reactstrap.UncontrolledPopover, {
59
- container: parentDom,
60
- target: targetId,
61
- onClick: event => event.stopPropagation(),
62
- placement: "left",
63
- className: "comment-delete-popover",
64
- isOpen: true
65
- }, /*#__PURE__*/_react.default.createElement("div", {
66
- className: "comment-delete-popover-container",
67
- ref: popoverRef
68
- }, /*#__PURE__*/_react.default.createElement("div", {
69
- className: "delete-tip"
70
- }, t(`Are_you_sure_to_delete_this_${type === 'comment' ? 'comment' : 'reply'}`)), /*#__PURE__*/_react.default.createElement("div", {
71
- className: "delete-control mt-5"
72
- }, /*#__PURE__*/_react.default.createElement("button", {
73
- className: "btn btn-secondary mr-2",
74
- onClick: onDeleteCancel
75
- }, t('Cancel')), /*#__PURE__*/_react.default.createElement("button", {
76
- className: "btn btn-primary",
77
- onClick: handleConfirm
78
- }, t('Confirm')))));
79
- };
80
- var _default = exports.default = CommentDeletePopover;