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

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.
@@ -18,13 +18,13 @@ var _context = _interopRequireDefault(require("../context"));
18
18
  var _useCursors = require("../cursor/use-cursors");
19
19
  var _decorates = require("../decorates");
20
20
  var _extension = require("../extension");
21
+ var _insertElementDialog = _interopRequireDefault(require("../extension/commons/insert-element-dialog"));
21
22
  var _constants2 = require("../extension/constants");
22
23
  var _core = require("../extension/core");
23
24
  var _renderCommentEditorElement = _interopRequireDefault(require("../extension/render/render-comment-editor-element"));
24
25
  var _commentEditorToolbar = _interopRequireDefault(require("../extension/toolbar/comment-editor-toolbar"));
25
26
  var _useComment = require("../hooks/use-comment");
26
27
  var _useScrollContext = require("../hooks/use-scroll-context");
27
- var _layout = require("../layout");
28
28
  var _nodeId = _interopRequireDefault(require("../node-id"));
29
29
  var _mdToSlate = _interopRequireDefault(require("../slate-convert/md-to-slate"));
30
30
  var _slateToMd = _interopRequireDefault(require("../slate-convert/slate-to-md"));
@@ -38,29 +38,28 @@ const getSubmitTip = (type, content) => {
38
38
  const DEFAULT_PLACEHOLDER = 'Enter_comment_shift_enter_for_new_line_Enter_to_send';
39
39
  const CommentEditor = _ref => {
40
40
  let {
41
- type,
42
41
  content,
43
42
  commentContent,
44
43
  placeholder = DEFAULT_PLACEHOLDER,
45
44
  insertContent,
46
45
  updateContent,
46
+ onContentChange,
47
47
  setIsEditing,
48
48
  hiddenComment,
49
49
  hiddenUserInfo,
50
- onContentChange,
51
- isContextComment,
52
- closeComment
50
+ closeComment,
51
+ addParticipants
53
52
  } = _ref;
54
53
  const commentWrapperRef = (0, _react.useRef)();
55
54
  const {
56
55
  t
57
56
  } = (0, _reactI18next.useTranslation)('sdoc-editor');
58
57
  const {
59
- addParticipants,
60
- className
58
+ className,
59
+ userInfo,
60
+ type
61
61
  } = (0, _useComment.useComment)();
62
62
  const submitTip = (0, _react.useMemo)(() => getSubmitTip(type, content), [content, type]);
63
- const userInfo = _context.default.getUserInfo();
64
63
  const document = (0, _react.useMemo)(() => {
65
64
  const cursor = {};
66
65
  let elements = null;
@@ -283,6 +282,8 @@ const CommentEditor = _ref => {
283
282
  onSubmit: onSubmit,
284
283
  submitBtnText: t(submitTip),
285
284
  onCancel: onCancel
286
- }))));
285
+ }))), /*#__PURE__*/_react.default.createElement(_insertElementDialog.default, {
286
+ editor: editor
287
+ }));
287
288
  };
288
289
  var _default = exports.default = CommentEditor;
@@ -17,6 +17,8 @@ const CommentContext = /*#__PURE__*/_react.default.createContext(null);
17
17
  const CommentProvider = _ref => {
18
18
  let {
19
19
  children,
20
+ type,
21
+ userInfo,
20
22
  pluginName = '',
21
23
  className = '',
22
24
  pluginEventBus,
@@ -27,14 +29,10 @@ const CommentProvider = _ref => {
27
29
  t
28
30
  } = (0, _reactI18next.useTranslation)('sdoc-editor');
29
31
  const [collaborators, setCollaborators] = (0, _react.useState)([]);
30
-
31
- // Mount
32
- (0, _react.useEffect)(() => {
33
-
34
- // eslint-disable-next-line react-hooks/exhaustive-deps
35
- }, []);
36
32
  return /*#__PURE__*/_react.default.createElement(CommentContext.Provider, {
37
33
  value: {
34
+ type,
35
+ userInfo,
38
36
  pluginName,
39
37
  className,
40
38
  api,
@@ -11,32 +11,36 @@ var _basicSdk = require("../basic-sdk");
11
11
  var _errorBoundary = _interopRequireDefault(require("../components/error-boundary"));
12
12
  const SeafileCommentEditor = _ref => {
13
13
  let {
14
+ type,
15
+ userInfo,
14
16
  pluginName = '',
15
17
  className = '',
16
- type,
17
18
  commentContent,
18
19
  hiddenUserInfo,
19
20
  insertContent,
20
21
  hiddenComment,
21
22
  onContentChange,
23
+ addParticipants,
22
24
  pluginEventBus,
23
25
  pluginEvent,
24
26
  api
25
27
  } = _ref;
26
28
  _basicSdk.context.init();
27
29
  return /*#__PURE__*/_react.default.createElement(_errorBoundary.default, null, /*#__PURE__*/_react.default.createElement(_basicSdk.CommentProvider, {
30
+ type: type,
31
+ userInfo: userInfo,
28
32
  pluginName: pluginName,
29
33
  className: className,
30
34
  pluginEventBus: pluginEventBus,
31
35
  pluginEvent: pluginEvent,
32
36
  api: api
33
37
  }, /*#__PURE__*/_react.default.createElement(_basicSdk.CommentEditor, {
34
- type: type,
35
38
  commentContent: commentContent,
36
39
  hiddenUserInfo: hiddenUserInfo,
37
40
  insertContent: insertContent,
38
41
  hiddenComment: hiddenComment,
39
- onContentChange: onContentChange
42
+ onContentChange: onContentChange,
43
+ addParticipants: addParticipants
40
44
  })));
41
45
  };
42
46
  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.5",
3
+ "version": "0.0.1-alpha.7",
4
4
  "private": false,
5
5
  "description": "This is a comment editor",
6
6
  "main": "dist/index.js",
@@ -1,15 +0,0 @@
1
- .comment-layout-wrapper {
2
- display: flex;
3
- flex-direction: row;
4
- max-width: 620px;
5
- min-width: 360px;
6
- position: relative;
7
- right: 0;
8
- }
9
-
10
- .comment-layout-wrapper .sdoc-content-right-panel {
11
- width: 100%;
12
- height: 100%;
13
- overflow: hidden;
14
- border-left: 1px solid #d8d8d8;
15
- }
@@ -1,87 +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 _comment = _interopRequireDefault(require("../../comment"));
11
- var _constants = require("../../constants");
12
- var _useComment = require("../../hooks/use-comment");
13
- var _eventBus = _interopRequireDefault(require("../../utils/event-bus"));
14
- var _localStorageUtils = _interopRequireDefault(require("../../utils/local-storage-utils"));
15
- var _resizeWidth = _interopRequireDefault(require("./resize-width"));
16
- require("./index.css");
17
- const MIN_PANEL_WIDTH = 360;
18
- const MAX_PANEL_WIDTH = 620;
19
- const CommentLayout = _ref => {
20
- let {
21
- editor
22
- } = _ref;
23
- const {
24
- className,
25
- pluginName,
26
- pluginEventBus,
27
- pluginEvent
28
- } = (0, _useComment.useComment)();
29
- const [width, setWidth] = (0, _react.useState)(MIN_PANEL_WIDTH);
30
- const panelWrapperStyle = (0, _react.useMemo)(() => {
31
- if (!pluginName) return null;
32
- let style = {
33
- width,
34
- zIndex: 101
35
- };
36
- if (!style.width || style.width < MIN_PANEL_WIDTH) {
37
- style.width = MIN_PANEL_WIDTH;
38
- } else if (style.width > MAX_PANEL_WIDTH) {
39
- style.width = MAX_PANEL_WIDTH;
40
- }
41
- return style;
42
- }, [width, pluginName]);
43
- const resizeWidth = (0, _react.useCallback)(width => {
44
- setWidth(width);
45
- }, []);
46
- const resizeWidthEnd = (0, _react.useCallback)(width => {
47
- const settings = _localStorageUtils.default.getItem(_constants.SDOC_STORAGE) || {};
48
- _localStorageUtils.default.setItem(_constants.SDOC_STORAGE, JSON.stringify({
49
- ...settings,
50
- panelWidth: width
51
- }));
52
- const eventBus = _eventBus.default.getInstance();
53
- eventBus.dispatch(_constants.INTERNAL_EVENT.RESIZE_ARTICLE);
54
- }, []);
55
- (0, _react.useEffect)(() => {
56
- const isShowGlobalComments = pluginName === 'sdoc' ? true : false;
57
- const settings = _localStorageUtils.default.getItem(_constants.SDOC_STORAGE) || {};
58
- _localStorageUtils.default.setItem(_constants.SDOC_STORAGE, {
59
- ...settings,
60
- isShowGlobalComments
61
- });
62
- const eventBus = pluginEventBus.getInstance();
63
- eventBus.dispatch(pluginEvent.RESIZE_ARTICLE);
64
- }, [pluginEvent.RESIZE_ARTICLE, pluginEventBus, pluginName]);
65
- (0, _react.useEffect)(() => {
66
- const settings = _localStorageUtils.default.getItem(_constants.SDOC_STORAGE) || {};
67
- const {
68
- panelWidth
69
- } = settings;
70
- const width = Math.max(MIN_PANEL_WIDTH, Math.min(parseInt(panelWidth, 10) || MIN_PANEL_WIDTH, MAX_PANEL_WIDTH));
71
- setWidth(width);
72
- }, []);
73
- return /*#__PURE__*/_react.default.createElement("div", {
74
- className: `comment-layout-wrapper ${className}`,
75
- style: panelWrapperStyle
76
- }, /*#__PURE__*/_react.default.createElement(_resizeWidth.default, {
77
- minWidth: MIN_PANEL_WIDTH,
78
- maxWidth: MAX_PANEL_WIDTH,
79
- resizeWidth: resizeWidth,
80
- resizeWidthEnd: resizeWidthEnd
81
- }), /*#__PURE__*/_react.default.createElement(_comment.default, {
82
- editor: editor,
83
- type: "global",
84
- width: width
85
- }));
86
- };
87
- var _default = exports.default = CommentLayout;
@@ -1,38 +0,0 @@
1
- .comment-layout-resize-width-handler {
2
- height: 100%;
3
- position: absolute;
4
- right: 0;
5
- top: 0;
6
- width: 6px;
7
- }
8
-
9
- .comment-layout-resize-width-handler.resize-handler-placement-right {
10
- left: 0;
11
- right: auto;
12
- }
13
-
14
- .comment-layout-resize-width-handler:hover {
15
- cursor: col-resize;
16
- }
17
-
18
- .comment-layout-resize-width-handler .comment-layout-resize-width-handler-content {
19
- background-color: initial;
20
- height: 100%;
21
- position: relative;
22
- width: 2px;
23
- }
24
-
25
- .comment-layout-resize-width-handler:hover .comment-layout-resize-width-handler-content {
26
- background-color: #ccc;
27
- }
28
-
29
- .comment-layout-resize-width-handler .comment-layout-resize-width-handler-bar {
30
- background-color: #2d7ff9;
31
- border-radius: 3px;
32
- content: "";
33
- left: 50%;
34
- margin-left: -3px;
35
- position: absolute;
36
- width: 6px;
37
- }
38
-
@@ -1,132 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = void 0;
8
- var _react = _interopRequireWildcard(require("react"));
9
- require("./index.css");
10
- const ResizeWidth = _ref => {
11
- let {
12
- minWidth,
13
- maxWidth,
14
- resizeWidth: resizeWidthAPI,
15
- resizeWidthEnd
16
- } = _ref;
17
- const [isShowHandlerBar, setIsShowHandlerBar] = (0, _react.useState)(false);
18
- const [drag, setDrag] = (0, _react.useState)(null);
19
- const handlerRef = (0, _react.useRef)(null);
20
- const handlerBarRef = (0, _react.useRef)(null);
21
- const setHandlerBarTop = handlerTop => {
22
- if (!handlerBarRef.current || handlerTop < 0) return;
23
- handlerBarRef.current.style.top = handlerTop + 'px';
24
- };
25
- const setHandlerBarPosition = event => {
26
- if (!handlerRef.current) return;
27
- const {
28
- top
29
- } = handlerRef.current.getBoundingClientRect();
30
- const handlerTop = event.pageY - top - 26 / 2;
31
- setHandlerBarTop(handlerTop);
32
- };
33
- const getWidthFromMouseEvent = event => {
34
- return event.pageX || event.touches && event.touches[0] && event.touches[0].pageX || event.changedTouches && event.changedTouches[event.changedTouches.length - 1].pageX;
35
- };
36
- const calculateResizedWidth = event => {
37
- const width = getWidthFromMouseEvent(event);
38
- const resizedWidth = document.body.clientWidth - width;
39
- if (minWidth && resizedWidth < minWidth || maxWidth && resizedWidth > maxWidth) return -1;
40
- return resizedWidth;
41
- };
42
- const onResizeWidth = event => {
43
- const resizedWidth = calculateResizedWidth(event);
44
- if (resizedWidth < 0) return;
45
- if (resizeWidthAPI) {
46
- resizeWidthAPI(resizedWidth);
47
- }
48
- };
49
- const onDrag = event => {
50
- onResizeWidth(event);
51
- };
52
- const onDragStart = (0, _react.useCallback)(event => {
53
- if (event && event.dataTransfer && event.dataTransfer.setData) {
54
- event.dataTransfer.setData('text/plain', 'dummy');
55
- }
56
- }, []);
57
- const onDragEnd = event => {
58
- onResizeWidth(event);
59
- };
60
- const onMouseLeave = () => {
61
- setIsShowHandlerBar(false);
62
- };
63
- const onMouseEnter = event => {
64
- setIsShowHandlerBar(true);
65
- setHandlerBarPosition(event);
66
- if (handlerRef.current) {
67
- handlerRef.current.addEventListener('mouseleave', onMouseLeave);
68
- }
69
- };
70
- const onMouseOver = event => {
71
- setHandlerBarPosition(event);
72
- };
73
- const onMouseDown = event => {
74
- event.preventDefault && event.preventDefault();
75
- const currDrag = onDragStart(event);
76
- if (currDrag === null && event.button !== 0) return;
77
- window.addEventListener('mouseup', onMouseUp);
78
- window.addEventListener('mousemove', onMouseMove);
79
- if (handlerRef.current) {
80
- handlerRef.current.removeEventListener('mouseleave', onMouseLeave);
81
- }
82
- setDrag(currDrag);
83
- };
84
- const onMouseMove = event => {
85
- event.preventDefault && event.preventDefault();
86
- if (!drag === null) return;
87
- onDrag(event);
88
- };
89
- const onMouseUp = event => {
90
- window.removeEventListener('mouseup', onMouseUp);
91
- window.removeEventListener('mousemove', onMouseMove);
92
- onDragEnd(event, drag);
93
- setHandlerBarTop(-9999);
94
- setDrag(null);
95
- setIsShowHandlerBar(false);
96
- if (resizeWidthEnd) {
97
- const resizeWidth = calculateResizedWidth(event);
98
- if (resizeWidth < 0) return;
99
- resizeWidthEnd(resizeWidth);
100
- }
101
- };
102
- (0, _react.useEffect)(() => {
103
- return () => {
104
- window.removeEventListener('mouseup', onMouseUp);
105
- window.removeEventListener('mousemove', onMouseMove);
106
- };
107
-
108
- // eslint-disable-next-line
109
- }, []);
110
- return /*#__PURE__*/_react.default.createElement("div", {
111
- className: "comment-layout-resize-width-handler resize-handler-placement-right",
112
- ref: handlerRef,
113
- onMouseDown: onMouseDown,
114
- onMouseOver: onMouseOver,
115
- onMouseEnter: onMouseEnter,
116
- onDrag: onDrag,
117
- onDragStart: onDragStart,
118
- onDragEnd: onDragEnd,
119
- style: {
120
- zIndex: 4
121
- }
122
- }, /*#__PURE__*/_react.default.createElement("div", {
123
- className: "comment-layout-resize-width-handler-content"
124
- }, isShowHandlerBar && /*#__PURE__*/_react.default.createElement("div", {
125
- className: "comment-layout-resize-width-handler-bar",
126
- ref: handlerBarRef,
127
- style: {
128
- height: 26
129
- }
130
- })));
131
- };
132
- var _default = exports.default = ResizeWidth;
@@ -1,32 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = void 0;
8
- var _react = _interopRequireDefault(require("react"));
9
- var _classnames = _interopRequireDefault(require("classnames"));
10
- var _commonUtils = require("../utils/common-utils");
11
- require("../assets/css/layout.css");
12
- require("../assets/css/default.css");
13
- require("../assets/css/sdoc-editor-article.css");
14
- require("../assets/css/sdoc-editor-plugins.css");
15
- require("../assets/css/sdoc-comment-editor-plugin.css");
16
- require("../assets/css/dropdown-menu.css");
17
- const EditorContainer = _ref => {
18
- let {
19
- children,
20
- readonly,
21
- fullscreen
22
- } = _ref;
23
- const className = (0, _classnames.default)('sdoc-editor-container', {
24
- 'mobile': _commonUtils.isMobile,
25
- 'readonly': readonly,
26
- 'fullscreen': fullscreen
27
- });
28
- return /*#__PURE__*/_react.default.createElement("div", {
29
- className: className
30
- }, children);
31
- };
32
- var _default = exports.default = EditorContainer;
@@ -1,13 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- Object.defineProperty(exports, "EditorContainer", {
8
- enumerable: true,
9
- get: function () {
10
- return _editorContainer.default;
11
- }
12
- });
13
- var _editorContainer = _interopRequireDefault(require("./editor-container"));