@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
@@ -1,160 +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 _slate = require("@seafile/slate");
12
- var _slateReact = require("@seafile/slate-react");
13
- var _classnames = _interopRequireDefault(require("classnames"));
14
- var _dayjs = _interopRequireDefault(require("dayjs"));
15
- var _useComment = require("../../hooks/use-comment");
16
- var _mdToHtml = _interopRequireDefault(require("../../slate-convert/md-to-html"));
17
- var _constants = require("../constants");
18
- var _helper = require("../helper");
19
- const CommentItemCollapseWrapper = _ref => {
20
- var _topLevelComment$deta;
21
- let {
22
- element,
23
- topLevelComment,
24
- latestReply,
25
- editor,
26
- replyCount,
27
- setCurrentCommentGroup,
28
- t
29
- } = _ref;
30
- const scrollRef = (0, _react.useRef)(document.querySelector('.sdoc-scroll-container'));
31
- const {
32
- notificationsInfo
33
- } = (0, _useComment.useComment)();
34
- const [commentContent, setCommentContent] = (0, _react.useState)('');
35
- const [replyContent, setReplyContent] = (0, _react.useState)('');
36
- const isUnseen = notificationsInfo.notifications_map[`sdoc_notification_${topLevelComment.id}`] ? true : false;
37
- const isReplayUnseen = (0, _react.useMemo)(() => {
38
- if (!latestReply) return false;
39
- const isUnseen = notificationsInfo.notifications_map[`sdoc_notification_${topLevelComment.id}_${latestReply.id}`] ? true : false;
40
- return isUnseen;
41
- }, [latestReply, notificationsInfo.notifications_map, topLevelComment.id]);
42
- (0, _react.useEffect)(() => {
43
- const initCommentContent = async () => {
44
- const htmlString = await _mdToHtml.default.process(topLevelComment.comment);
45
- setCommentContent(String(htmlString));
46
- };
47
- initCommentContent();
48
- }, [topLevelComment.comment]);
49
- (0, _react.useEffect)(() => {
50
- const initReplyContent = async () => {
51
- if (!latestReply) {
52
- setReplyContent('');
53
- return;
54
- }
55
- let mdString = '';
56
- if (latestReply.reply) {
57
- mdString = latestReply.reply;
58
- } else {
59
- mdString = '';
60
- }
61
- const htmlString = await _mdToHtml.default.process(mdString);
62
- setReplyContent(String(htmlString));
63
- };
64
- initReplyContent();
65
- }, [latestReply, t]);
66
- const handleScrollToArticle = (0, _react.useCallback)(e => {
67
- e.stopPropagation();
68
- const dom = _slateReact.ReactEditor.toDOMNode(editor, element);
69
- const headerHeight = 56 + 37;
70
- scrollRef.current.scrollTo({
71
- top: dom.offsetTop - headerHeight,
72
- behavior: 'smooth'
73
- });
74
- }, [editor, element, scrollRef]);
75
- const onItemClick = (0, _react.useCallback)(event => {
76
- event.stopPropagation();
77
- if (event.target.className === _constants.COMMENT_URL_CLASSNAME) return;
78
- setCurrentCommentGroup(topLevelComment.id);
79
- }, [setCurrentCommentGroup, topLevelComment.id]);
80
- return /*#__PURE__*/_react.default.createElement("div", {
81
- id: `comment-item-wrapper_${topLevelComment.id}`,
82
- className: (0, _classnames.default)('comment-collapse-wrapper', 'comment-ui-container', {
83
- 'sdoc-resolved': topLevelComment.resolved,
84
- 'd-flex flex-column': element
85
- }),
86
- onClick: onItemClick
87
- }, topLevelComment.detail.element_id_list && /*#__PURE__*/_react.default.createElement("div", {
88
- className: (0, _classnames.default)('comment-item-selected-text-container', {
89
- 'detail-context-comment': ((_topLevelComment$deta = topLevelComment.detail.element_id_list) === null || _topLevelComment$deta === void 0 ? void 0 : _topLevelComment$deta.length) > 0
90
- }),
91
- onClick: handleScrollToArticle
92
- }, /*#__PURE__*/_react.default.createElement("i", {
93
- className: "sdocfont sdoc-comment-quote mr-2"
94
- }), /*#__PURE__*/_react.default.createElement("div", {
95
- className: "comment-item-selected-text"
96
- }, topLevelComment.detail.element_id_list.map((elementId, index) => {
97
- return /*#__PURE__*/_react.default.createElement("div", {
98
- className: "context-comment-item-selected-text",
99
- key: index
100
- }, (0, _helper.getCommentedTextsByElementId)(elementId, topLevelComment.detail.text_comment_id));
101
- }))), element && /*#__PURE__*/_react.default.createElement("div", {
102
- className: "comment-item-selected-text-container",
103
- onClick: handleScrollToArticle
104
- }, /*#__PURE__*/_react.default.createElement("i", {
105
- className: "sdocfont sdoc-comment-quote mr-2"
106
- }), /*#__PURE__*/_react.default.createElement("div", {
107
- className: "comment-item-selected-text"
108
- }, _slate.Node.string(element))), /*#__PURE__*/_react.default.createElement("div", {
109
- className: "comment-item-list"
110
- }, /*#__PURE__*/_react.default.createElement("div", {
111
- className: "comment-item"
112
- }, /*#__PURE__*/_react.default.createElement("div", {
113
- className: "comment-header"
114
- }, /*#__PURE__*/_react.default.createElement("div", {
115
- className: "comment-author"
116
- }, /*#__PURE__*/_react.default.createElement("span", {
117
- className: "comment-author__avatar"
118
- }, /*#__PURE__*/_react.default.createElement("img", {
119
- alt: "",
120
- src: topLevelComment.avatar_url
121
- })), /*#__PURE__*/_react.default.createElement("span", {
122
- className: "comment-author__info"
123
- }, /*#__PURE__*/_react.default.createElement("span", {
124
- className: "name"
125
- }, topLevelComment.user_name), /*#__PURE__*/_react.default.createElement("span", {
126
- className: "time"
127
- }, (0, _dayjs.default)(topLevelComment.updated_at).format('MM-DD HH:mm'), (topLevelComment === null || topLevelComment === void 0 ? void 0 : topLevelComment.resolved) && /*#__PURE__*/_react.default.createElement("span", {
128
- className: "comment-success-resolved sdocfont sdoc-mark-as-resolved"
129
- })))), (isUnseen || isReplayUnseen) && /*#__PURE__*/_react.default.createElement("div", {
130
- className: "sdoc-unread-message-tip"
131
- })), /*#__PURE__*/_react.default.createElement("div", {
132
- className: "comment-content"
133
- }, /*#__PURE__*/_react.default.createElement("div", {
134
- dangerouslySetInnerHTML: {
135
- __html: commentContent
136
- }
137
- })), replyCount !== 0 && /*#__PURE__*/_react.default.createElement("div", {
138
- className: "comment-footer"
139
- }, /*#__PURE__*/_react.default.createElement("span", {
140
- className: "comments-count"
141
- }, /*#__PURE__*/_react.default.createElement("i", {
142
- className: "sdocfont sdoc-comments"
143
- }), /*#__PURE__*/_react.default.createElement("span", {
144
- className: "comments-count-number"
145
- }, replyCount)), /*#__PURE__*/_react.default.createElement("div", {
146
- className: "comment-author"
147
- }, /*#__PURE__*/_react.default.createElement("span", {
148
- className: "comment-author__avatar"
149
- }, /*#__PURE__*/_react.default.createElement("img", {
150
- alt: "",
151
- src: latestReply.avatar_url
152
- })), /*#__PURE__*/_react.default.createElement("div", {
153
- className: "comment-author__latest-reply"
154
- }, /*#__PURE__*/_react.default.createElement("div", {
155
- dangerouslySetInnerHTML: {
156
- __html: replyContent
157
- }
158
- })))))));
159
- };
160
- var _default = exports.default = (0, _reactI18next.withTranslation)('sdoc-editor')(CommentItemCollapseWrapper);
@@ -1,154 +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 _dayjs = _interopRequireDefault(require("dayjs"));
13
- var _tooltip = _interopRequireDefault(require("../../components/tooltip"));
14
- var _context = _interopRequireDefault(require("../../context"));
15
- var _useComment = require("../../hooks/use-comment");
16
- var _mdToHtml = _interopRequireDefault(require("../../slate-convert/md-to-html"));
17
- var _commentEditor = _interopRequireDefault(require("./comment-editor"));
18
- const CommentItemContent = _ref => {
19
- let {
20
- isActive,
21
- container,
22
- comment,
23
- updateComment,
24
- updateCommentState,
25
- onShowDeletePopover,
26
- t,
27
- targetId
28
- } = _ref;
29
- const [isDropdownOpen, setDropdownOpen] = (0, _react.useState)(false);
30
- const [isEditing, setIsEditing] = (0, _react.useState)(false);
31
- const {
32
- notificationsInfo
33
- } = (0, _useComment.useComment)();
34
- const [editorContent, setEditorContent] = (0, _react.useState)('');
35
- const isUnseen = notificationsInfo.notifications_map[`sdoc_notification_${comment.id}`] ? true : false;
36
- (0, _react.useEffect)(() => {
37
- transferHtml(comment.comment);
38
- }, [comment.comment]);
39
- const transferHtml = async mdString => {
40
- const htmlString = await _mdToHtml.default.process(mdString);
41
- setEditorContent(String(htmlString));
42
- };
43
- const updateContent = (0, _react.useCallback)(content => {
44
- const commentId = comment.id;
45
- if (comment.comment !== content) {
46
- const time = (0, _dayjs.default)().format('YYYY-MM-DD HH:mm:ss');
47
- const newComment = {
48
- comment: content,
49
- detail: {
50
- ...comment.detail,
51
- comment: content
52
- },
53
- updated_at: time
54
- };
55
- updateComment(commentId, newComment);
56
- }
57
- setIsEditing(false);
58
- }, [comment, updateComment]);
59
- const updateCommentResolved = (0, _react.useCallback)(state => {
60
- const commentId = comment.id;
61
- const newComment = {
62
- resolved: state
63
- };
64
- updateCommentState(commentId, newComment);
65
- }, [comment.id, updateCommentState]);
66
- const markAsResolved = (0, _react.useCallback)(event => {
67
- event.stopPropagation();
68
- updateCommentResolved(true);
69
- }, [updateCommentResolved]);
70
- const resubmit = (0, _react.useCallback)(event => {
71
- event.stopPropagation();
72
- updateCommentResolved(false);
73
- }, [updateCommentResolved]);
74
- const menuId = (0, _react.useMemo)(() => `comment_${comment.id}`, [comment]);
75
- const user = _context.default.getUserInfo();
76
- return /*#__PURE__*/_react.default.createElement("div", {
77
- className: "comment-item"
78
- }, /*#__PURE__*/_react.default.createElement("div", {
79
- className: "comment-header"
80
- }, /*#__PURE__*/_react.default.createElement("div", {
81
- className: "comment-author"
82
- }, /*#__PURE__*/_react.default.createElement("span", {
83
- className: "comment-author__avatar"
84
- }, /*#__PURE__*/_react.default.createElement("img", {
85
- alt: "",
86
- src: comment.avatar_url
87
- })), /*#__PURE__*/_react.default.createElement("span", {
88
- className: "comment-author__info"
89
- }, /*#__PURE__*/_react.default.createElement("span", {
90
- className: "name"
91
- }, comment.user_name), /*#__PURE__*/_react.default.createElement("span", {
92
- className: "time"
93
- }, (0, _dayjs.default)(comment.updated_at).format('MM-DD HH:mm'), (comment === null || comment === void 0 ? void 0 : comment.resolved) && /*#__PURE__*/_react.default.createElement("span", {
94
- className: "comment-success-resolved sdocfont sdoc-mark-as-resolved"
95
- })))), isUnseen && !isActive && /*#__PURE__*/_react.default.createElement("span", {
96
- className: "sdoc-unread-message-tip"
97
- }), isActive && [comment === null || comment === void 0 ? void 0 : comment.user_email, comment === null || comment === void 0 ? void 0 : comment.author].includes(user.username) && /*#__PURE__*/_react.default.createElement("div", {
98
- className: "d-flex comment-item-operation-wrapper"
99
- }, (!comment.resolved || (comment === null || comment === void 0 ? void 0 : comment.isContextComment)) && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
100
- id: `tooltip_${menuId}`,
101
- className: "comment-operation mr-2",
102
- onClick: markAsResolved
103
- }, /*#__PURE__*/_react.default.createElement("i", {
104
- className: "sdocfont sdoc-confirm"
105
- })), /*#__PURE__*/_react.default.createElement(_tooltip.default, {
106
- target: `tooltip_${menuId}`
107
- }, t('Resolved_tip'))), /*#__PURE__*/_react.default.createElement(_reactstrap.Dropdown, {
108
- id: targetId,
109
- isOpen: isDropdownOpen,
110
- toggle: () => setDropdownOpen(!isDropdownOpen)
111
- }, /*#__PURE__*/_react.default.createElement(_reactstrap.DropdownToggle, {
112
- tag: "div",
113
- className: "comment-operation"
114
- }, /*#__PURE__*/_react.default.createElement("i", {
115
- className: "sdocfont sdoc-more"
116
- })), /*#__PURE__*/_react.default.createElement(_reactstrap.DropdownMenu, {
117
- className: "sdoc-dropdown-menu",
118
- container: container
119
- }, /*#__PURE__*/_react.default.createElement(_reactstrap.DropdownItem, {
120
- className: "sdoc-dropdown-menu-item",
121
- tag: "div",
122
- onClick: event => {
123
- event.stopPropagation();
124
- setIsEditing(true);
125
- }
126
- }, t('Edit')), /*#__PURE__*/_react.default.createElement(_reactstrap.DropdownItem, {
127
- className: "sdoc-dropdown-menu-item",
128
- tag: "div",
129
- onClick: event => {
130
- event.stopPropagation();
131
- onShowDeletePopover(true);
132
- }
133
- }, t('Delete')), !comment.resolved && /*#__PURE__*/_react.default.createElement(_reactstrap.DropdownItem, {
134
- className: "sdoc-dropdown-menu-item",
135
- tag: "div",
136
- onClick: markAsResolved
137
- }, t('Mark_as_Resolved')), comment.resolved && /*#__PURE__*/_react.default.createElement(_reactstrap.DropdownItem, {
138
- className: "sdoc-dropdown-menu-item",
139
- tag: "div",
140
- onClick: resubmit
141
- }, t('Resubmit')))))), /*#__PURE__*/_react.default.createElement("div", {
142
- className: "comment-content"
143
- }, !isEditing && /*#__PURE__*/_react.default.createElement("div", {
144
- dangerouslySetInnerHTML: {
145
- __html: editorContent
146
- }
147
- })), isEditing && /*#__PURE__*/_react.default.createElement(_commentEditor.default, {
148
- className: "pb-3",
149
- content: comment.comment,
150
- updateContent: updateContent,
151
- setIsEditing: setIsEditing
152
- }));
153
- };
154
- var _default = exports.default = (0, _reactI18next.withTranslation)('sdoc-editor')(CommentItemContent);
@@ -1,124 +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 _dayjs = _interopRequireDefault(require("dayjs"));
13
- var _context = _interopRequireDefault(require("../../context"));
14
- var _mdToHtml = _interopRequireDefault(require("../../slate-convert/md-to-html"));
15
- var _commentDeletePopover = _interopRequireDefault(require("./comment-delete-popover"));
16
- var _commentEditor = _interopRequireDefault(require("./comment-editor"));
17
- const CommentItemReply = _ref => {
18
- let {
19
- isActive,
20
- container,
21
- reply,
22
- deleteReply,
23
- updateReply,
24
- t
25
- } = _ref;
26
- const [isDropdownOpen, setDropdownOpen] = (0, _react.useState)(false);
27
- const itemRef = (0, _react.useRef)(null);
28
- const [isEditing, setIsEditing] = (0, _react.useState)(false);
29
- const [editorContent, setEditorContent] = (0, _react.useState)('');
30
- const replyOpToolsId = `replyOpTools_${reply.id}`;
31
- const onEditToggle = (0, _react.useCallback)(event => {
32
- event.stopPropagation();
33
- setIsEditing(true);
34
- }, []);
35
- const [isShowDeletePopover, setIsShowDeletePopover] = (0, _react.useState)(false);
36
- const onDeleteToggle = (0, _react.useCallback)(event => {
37
- event.stopPropagation();
38
- setIsShowDeletePopover(true);
39
- }, []);
40
- const transferHtml = async mdString => {
41
- const htmlString = await _mdToHtml.default.process(mdString);
42
- const formatHtml = String(htmlString).replace(/\n */g, '');
43
- setEditorContent(formatHtml);
44
- };
45
- (0, _react.useEffect)(() => {
46
- transferHtml(reply.reply);
47
- }, [reply.reply]);
48
- const _deleteReply = (0, _react.useCallback)(() => {
49
- deleteReply(reply.id);
50
- setIsShowDeletePopover(false);
51
- }, [reply.id, deleteReply]);
52
- const updateContent = (0, _react.useCallback)(content => {
53
- if (reply.reply !== content) {
54
- const time = (0, _dayjs.default)().format('YYYY-MM-DD HH:mm:ss');
55
- const newReply = {
56
- reply: content,
57
- updated_at: time
58
- };
59
- updateReply(reply.id, newReply);
60
- }
61
- setIsEditing(false);
62
- }, [reply, updateReply]);
63
- const user = _context.default.getUserInfo();
64
- return /*#__PURE__*/_react.default.createElement("div", {
65
- className: "comment-item",
66
- ref: itemRef
67
- }, /*#__PURE__*/_react.default.createElement("div", {
68
- className: "comment-header"
69
- }, /*#__PURE__*/_react.default.createElement("div", {
70
- className: "comment-author"
71
- }, /*#__PURE__*/_react.default.createElement("span", {
72
- className: "comment-author__avatar"
73
- }, /*#__PURE__*/_react.default.createElement("img", {
74
- alt: "",
75
- src: reply.avatar_url
76
- })), /*#__PURE__*/_react.default.createElement("span", {
77
- className: "comment-author__info"
78
- }, /*#__PURE__*/_react.default.createElement("span", {
79
- className: "name"
80
- }, reply.user_name), /*#__PURE__*/_react.default.createElement("span", {
81
- className: "time"
82
- }, (0, _dayjs.default)(reply.updated_at).format('MM-DD HH:mm')))), isActive && user.username === reply.author && /*#__PURE__*/_react.default.createElement("div", {
83
- className: "comment-item-operation-wrapper"
84
- }, /*#__PURE__*/_react.default.createElement(_reactstrap.Dropdown, {
85
- id: replyOpToolsId,
86
- isOpen: isDropdownOpen,
87
- toggle: () => setDropdownOpen(!isDropdownOpen)
88
- }, /*#__PURE__*/_react.default.createElement(_reactstrap.DropdownToggle, {
89
- tag: "div",
90
- className: "comment-operation"
91
- }, /*#__PURE__*/_react.default.createElement("i", {
92
- className: "sdocfont sdoc-more"
93
- })), /*#__PURE__*/_react.default.createElement(_reactstrap.DropdownMenu, {
94
- className: "sdoc-dropdown-menu",
95
- container: container
96
- }, /*#__PURE__*/_react.default.createElement(_reactstrap.DropdownItem, {
97
- className: "sdoc-dropdown-menu-item",
98
- tag: "div",
99
- onClick: onEditToggle
100
- }, t('Edit')), /*#__PURE__*/_react.default.createElement(_reactstrap.DropdownItem, {
101
- className: "sdoc-dropdown-menu-item",
102
- tag: "div",
103
- onClick: onDeleteToggle
104
- }, t('Delete')))))), /*#__PURE__*/_react.default.createElement("div", {
105
- className: "comment-content"
106
- }, !isEditing && /*#__PURE__*/_react.default.createElement("div", {
107
- dangerouslySetInnerHTML: {
108
- __html: editorContent
109
- }
110
- })), isEditing && /*#__PURE__*/_react.default.createElement(_commentEditor.default, {
111
- className: "pb-3",
112
- type: "reply",
113
- content: editorContent,
114
- updateContent: updateContent,
115
- setIsEditing: setIsEditing
116
- }), isShowDeletePopover && isActive && /*#__PURE__*/_react.default.createElement(_commentDeletePopover.default, {
117
- parentDom: itemRef.current,
118
- type: "reply",
119
- deleteConfirm: _deleteReply,
120
- setIsShowDeletePopover: setIsShowDeletePopover,
121
- targetId: replyOpToolsId
122
- }));
123
- };
124
- var _default = exports.default = (0, _reactI18next.withTranslation)('sdoc-editor')(CommentItemReply);
@@ -1,38 +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 _dayjs = _interopRequireDefault(require("dayjs"));
12
- const CommentItemResolvedReply = _ref => {
13
- let {
14
- reply,
15
- t
16
- } = _ref;
17
- return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
18
- className: "comment-item"
19
- }, /*#__PURE__*/_react.default.createElement("div", {
20
- className: "comment-header"
21
- }, /*#__PURE__*/_react.default.createElement("div", {
22
- className: "comment-author"
23
- }, /*#__PURE__*/_react.default.createElement("span", {
24
- className: "comment-author__avatar"
25
- }, /*#__PURE__*/_react.default.createElement("img", {
26
- alt: "",
27
- src: reply.avatar_url
28
- })), /*#__PURE__*/_react.default.createElement("span", {
29
- className: "comment-author__info"
30
- }, /*#__PURE__*/_react.default.createElement("span", {
31
- className: "name"
32
- }, reply.user_name), /*#__PURE__*/_react.default.createElement("span", {
33
- className: "time"
34
- }, (0, _dayjs.default)(reply.updated_at).format('MM-DD HH:mm'))))), /*#__PURE__*/_react.default.createElement("p", {
35
- className: "comment-content"
36
- }, reply.reply === 'True' && /*#__PURE__*/_react.default.createElement("span", null, t('Mark_as_Resolved')), reply.reply === 'False' && /*#__PURE__*/_react.default.createElement("span", null, t('Resubmitted')))));
37
- };
38
- var _default = exports.default = (0, _reactI18next.withTranslation)('sdoc-editor')(CommentItemResolvedReply);