@seafile/sdoc-editor 2.0.190 → 2.0.192

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.
@@ -221,6 +221,7 @@
221
221
  background-color: rgb(153 153 153 / 15%);
222
222
  padding: 3px 0;
223
223
  border-radius: 3px;
224
+ cursor: pointer;
224
225
  }
225
226
 
226
227
  /* code_block */
@@ -13,7 +13,7 @@
13
13
 
14
14
  .sdoc-file-preview-drawer .file-preview-panel-header {
15
15
  padding: 0 16px;
16
- height: 46px;
16
+ height: 44px;
17
17
  display: flex;
18
18
  align-items: center;
19
19
  justify-content: space-between;
@@ -48,7 +48,9 @@ var parcelFileTypeIcon = exports.parcelFileTypeIcon = function parcelFileTypeIco
48
48
  var fileExtType = (_Object$entries$find = Object.entries(_constants.FILEEXT_TYPE).find(function (_ref) {
49
49
  var _ref2 = (0, _slicedToArray2["default"])(_ref, 2),
50
50
  extensions = _ref2[1];
51
- return extensions.includes(newFileType);
51
+ return extensions.some(function (ext) {
52
+ return ext.toLowerCase() === newFileType.toLowerCase();
53
+ });
52
54
  })) === null || _Object$entries$find === void 0 ? void 0 : _Object$entries$find[0];
53
55
  var fileTypeResult = fileExtType ? _constants.FILEEXT_TYPE_MAP[fileExtType] : newFileType;
54
56
  var fileTypeIcon = getFileTypeIcon(fileTypeResult);
@@ -47,7 +47,7 @@ var ListView = function ListView(_ref) {
47
47
  (0, _react.useEffect)(function () {
48
48
  var getFileMetadata = /*#__PURE__*/function () {
49
49
  var _ref2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/(0, _regenerator2["default"])().m(function _callee() {
50
- var res, sortedRecords, firstFile, filePath;
50
+ var res, sortedRecords;
51
51
  return (0, _regenerator2["default"])().w(function (_context) {
52
52
  while (1) switch (_context.n) {
53
53
  case 0:
@@ -61,15 +61,6 @@ var ListView = function ListView(_ref) {
61
61
  });
62
62
  setAllFileList(sortedRecords);
63
63
  setFileList(sortedRecords);
64
- firstFile = sortedRecords[0];
65
- if (firstFile) {
66
- filePath = (firstFile._parent_dir === '/' ? '' : firstFile._parent_dir) + '/' + firstFile._name;
67
- onSelectFile(null, {
68
- id: firstFile._id,
69
- name: firstFile._name,
70
- path: filePath
71
- });
72
- }
73
64
  case 2:
74
65
  return _context.a(2);
75
66
  }
@@ -5,6 +5,10 @@
5
5
  border-radius: 3px;
6
6
  }
7
7
 
8
+ .sdoc-file-link-render:hover {
9
+ cursor: pointer;
10
+ }
11
+
8
12
  .sdoc-file-link-render:hover .sdoc-file-text-link a {
9
13
  text-decoration: underline;
10
14
  text-underline-position: under;
@@ -44,7 +48,7 @@
44
48
 
45
49
  .sdoc-file-link-render .sdoc-file-link-icon {
46
50
  padding-right: 5px;
47
- color: #ff9800;
51
+ color: #9aa0ac;
48
52
  }
49
53
 
50
54
  .sdoc-file-card-link .sdoc-file-link-icon :first-child {
@@ -75,18 +75,22 @@ var SdocLinkHoverMenu = function SdocLinkHoverMenu(_ref) {
75
75
  var doc_uuid = element.doc_uuid,
76
76
  title = element.title,
77
77
  type = element.type;
78
- var eventBus = _eventBus["default"].getInstance();
79
- eventBus.dispatch(_constants.INTERNAL_EVENT.TRANSFER_PREVIEW_FILE_ID, {
78
+ var data = {
80
79
  doc_uuid: doc_uuid,
81
80
  title: title,
82
81
  type: type
83
- });
82
+ };
83
+ if (editor.editorType === _constants.WIKI_EDITOR) {
84
+ data = element;
85
+ }
86
+ var eventBus = _eventBus["default"].getInstance();
87
+ eventBus.dispatch(_constants.INTERNAL_EVENT.TRANSFER_PREVIEW_FILE_ID, data);
84
88
  setTimeout(function () {
85
89
  onHideInsertHoverMenu();
86
90
  }, 0);
91
+ // eslint-disable-next-line react-hooks/exhaustive-deps
87
92
  }, [updateDisplayPlugin]);
88
93
  var selectedType = element.display_type || _constants2.SDOC_LINK_TYPE.TEXT_LINK;
89
- var id = "sdoc-link-display-type-".concat(element.id);
90
94
  var newSdocFileTypes = _constants2.SDOC_LINK_TYPES.filter(function (sdocLinkType) {
91
95
  return (0, _helpers.isInTable)(editor, element) ? sdocLinkType !== _constants2.SDOC_LINK_TYPE.CARD_LINK : true;
92
96
  });
@@ -154,7 +158,7 @@ var SdocLinkHoverMenu = function SdocLinkHoverMenu(_ref) {
154
158
  return handleOpenLinkPreview('sdoc-file-preview');
155
159
  }
156
160
  }, /*#__PURE__*/_react["default"].createElement("i", {
157
- className: "sdocfont sodc-eye icon-font"
161
+ className: "sdocfont sdoc-eye icon-font"
158
162
  })), isShowTooltip && /*#__PURE__*/_react["default"].createElement(_tooltip["default"], {
159
163
  target: "sdoc_link_preview",
160
164
  placement: "top",
@@ -5,6 +5,10 @@
5
5
  border-radius: 3px;
6
6
  }
7
7
 
8
+ .sdoc-file-render:hover {
9
+ cursor: pointer;
10
+ }
11
+
8
12
  .sdoc-file-render:hover .sdoc-file-text-link a {
9
13
  text-decoration: underline;
10
14
  text-underline-position: under;
@@ -27,7 +31,7 @@
27
31
 
28
32
  .sdoc-file-render .sdoc-file-link-icon {
29
33
  padding-right: 5px;
30
- color: #ff9800;
34
+ color: #666;
31
35
  }
32
36
 
33
37
  .sdoc-file-card-link .sdoc-file-link-icon :first-child {
@@ -125,18 +125,22 @@ var SdocFileLink = function SdocFileLink(_ref) {
125
125
  return;
126
126
  }
127
127
  }
128
- if (isShowInsertHoverMenu && element.type === _elementType.SDOC_LINK) {
128
+ if (isShowInsertHoverMenu && [_elementType.SDOC_LINK, _elementType.WIKI_LINK].includes(element.type)) {
129
129
  e.stopPropagation();
130
- updateDisplayPlugin('sdoc-file-preview', true);
130
+ element.type === _elementType.SDOC_LINK && updateDisplayPlugin('sdoc-file-preview', true);
131
131
  var doc_uuid = element.doc_uuid,
132
132
  title = element.title,
133
133
  type = element.type;
134
- var eventBus = _eventBus["default"].getInstance();
135
- eventBus.dispatch(_constants.INTERNAL_EVENT.TRANSFER_PREVIEW_FILE_ID, {
134
+ var data = {
136
135
  doc_uuid: doc_uuid,
137
136
  title: title,
138
137
  type: type
139
- });
138
+ };
139
+ if (element.type === _elementType.WIKI_LINK) {
140
+ data = element;
141
+ }
142
+ var eventBus = _eventBus["default"].getInstance();
143
+ eventBus.dispatch(_constants.INTERNAL_EVENT.TRANSFER_PREVIEW_FILE_ID, data);
140
144
  setTimeout(function () {
141
145
  onHideInsertHoverMenu();
142
146
  }, 0);
@@ -4,10 +4,12 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.videoFileIcon = exports.parseVideoLink = exports.isInsertVideoMenuDisabled = exports.insertVideo = exports.getVideoURL = exports.generateVideoNode = exports.formatFileSize = void 0;
7
+ exports.videoFileIcon = exports.parseVideoLink = exports.onCopyVideoNode = exports.isInsertVideoMenuDisabled = exports.insertVideo = exports.getVideoURL = exports.generateVideoNode = exports.formatFileSize = void 0;
8
8
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
9
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
10
10
  var _slate = require("@seafile/slate");
11
+ var _slateReact = require("@seafile/slate-react");
12
+ var _copyToClipboard = _interopRequireDefault(require("copy-to-clipboard"));
11
13
  var _urlJoin = _interopRequireDefault(require("url-join"));
12
14
  var _context = _interopRequireDefault(require("../../../context"));
13
15
  var _constants = require("../../constants");
@@ -204,4 +206,18 @@ var formatFileSize = exports.formatFileSize = function formatFileSize(size) {
204
206
  var videoFileIcon = exports.videoFileIcon = function videoFileIcon() {
205
207
  var server = _context["default"].getSetting('serviceUrl');
206
208
  return "".concat(server, "/media/img/file/256/video.png");
209
+ };
210
+ var onCopyVideoNode = exports.onCopyVideoNode = function onCopyVideoNode(editor, element) {
211
+ if (editor.selection == null || _slate.Range.isExpanded(editor.selection)) return;
212
+ var p = _slateReact.ReactEditor.findPath(editor, element);
213
+ _slate.Transforms.select(editor, p);
214
+ var newData = editor.setFragmentData(new DataTransfer());
215
+ (0, _copyToClipboard["default"])('copy', {
216
+ onCopy: function onCopy(clipboardData) {
217
+ newData.types.forEach(function (type) {
218
+ var data = newData.getData(type);
219
+ clipboardData.setData(type, data);
220
+ });
221
+ }
222
+ });
207
223
  };
@@ -0,0 +1,52 @@
1
+ .video-hover-menu-container {
2
+ position: absolute;
3
+ height: 42px;
4
+ z-index: 101;
5
+ width: auto;
6
+ }
7
+
8
+ .video-hover-menu-container .hover-menu-container {
9
+ height: 36px;
10
+ padding: 7px 8px;
11
+ background-color: #fff;
12
+ display: flex;
13
+ justify-content: flex-start;
14
+ align-items: center;
15
+ border-radius: 3px;
16
+ box-shadow: 0 1px 0 rgba(0, 0, 0, 0.08);
17
+ border: 1px solid #e8e8e8;
18
+ }
19
+
20
+ .video-hover-menu-container .hover-menu-container>span:not(:last-of-type) {
21
+ padding-right: 8px;
22
+ border-right: 1px solid #e5e5e5;
23
+ }
24
+
25
+ .video-hover-menu-container .hover-menu-container .op-item {
26
+ position: relative;
27
+ font-size: 12px;
28
+ color: #212529;
29
+ padding: 0 5px;
30
+ border-radius: 2px;
31
+ min-width: 24px;
32
+ height: 24px;
33
+ display: inline-flex;
34
+ align-items: center;
35
+ justify-content: center;
36
+ }
37
+
38
+ .video-hover-menu-container .hover-menu-container .op-item:hover {
39
+ color: #212529;
40
+ text-decoration: none;
41
+ background: #f1f1f1;
42
+ }
43
+
44
+ .video-hover-menu-container .op-group-item:first-child .op-item:last-child,
45
+ .video-hover-menu-container .op-group-item:not(:first-child) .op-item {
46
+ margin-left: 8px;
47
+ }
48
+
49
+ .video-hover-menu-container .hover-menu-container .icon-font {
50
+ font-size: 12px;
51
+ color: #444;
52
+ }
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"];
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
10
+ var _react = _interopRequireWildcard(require("react"));
11
+ var _reactI18next = require("react-i18next");
12
+ var _slate = require("@seafile/slate");
13
+ var _slateReact = require("@seafile/slate-react");
14
+ var _toast = _interopRequireDefault(require("../../../../components/toast"));
15
+ var _tooltip = _interopRequireDefault(require("../../../../components/tooltip"));
16
+ var _commons = require("../../../commons");
17
+ var _core = require("../../../core");
18
+ var _helpers = require("../helpers");
19
+ require("./index.css");
20
+ var VideoHoverMenu = function VideoHoverMenu(_ref) {
21
+ var editor = _ref.editor,
22
+ menuPosition = _ref.menuPosition,
23
+ element = _ref.element,
24
+ videoRef = _ref.videoRef,
25
+ setIsSelected = _ref.setIsSelected,
26
+ t = _ref.t;
27
+ var readOnly = (0, _slateReact.useReadOnly)();
28
+ var _useState = (0, _react.useState)(false),
29
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
30
+ isShowTooltip = _useState2[0],
31
+ setIsShowTooltip = _useState2[1];
32
+ (0, _react.useEffect)(function () {
33
+ setIsShowTooltip(true);
34
+ }, []);
35
+ var onCopy = (0, _react.useCallback)(function (e) {
36
+ e.stopPropagation();
37
+ (0, _helpers.onCopyVideoNode)(editor, element);
38
+ _toast["default"].success(t('Copied'), {
39
+ hasCloseButton: false,
40
+ duration: 2
41
+ });
42
+ setIsSelected(false);
43
+ // eslint-disable-next-line react-hooks/exhaustive-deps
44
+ }, []);
45
+ var onDeleteVideo = (0, _react.useCallback)(function () {
46
+ var path = _slateReact.ReactEditor.findPath(editor, element);
47
+ _slate.Transforms.removeNodes(editor, {
48
+ at: path
49
+ });
50
+ (0, _core.focusEditor)(editor);
51
+ _slate.Transforms.select(editor, editor.selection);
52
+ }, [editor, element]);
53
+ var handleFullScreen = function handleFullScreen() {
54
+ var _videoRef$current;
55
+ setIsSelected(false);
56
+ (_videoRef$current = videoRef.current) === null || _videoRef$current === void 0 ? void 0 : _videoRef$current.requestFullscreen();
57
+ };
58
+ return /*#__PURE__*/_react["default"].createElement(_commons.ElementPopover, null, /*#__PURE__*/_react["default"].createElement("div", {
59
+ className: "video-hover-menu-container",
60
+ style: menuPosition
61
+ }, /*#__PURE__*/_react["default"].createElement("div", {
62
+ className: "hover-menu-container"
63
+ }, !readOnly && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("span", {
64
+ className: "op-group-item"
65
+ }, /*#__PURE__*/_react["default"].createElement("span", {
66
+ id: "sdoc_video_copy",
67
+ role: "button",
68
+ className: "op-item",
69
+ onClick: onCopy
70
+ }, /*#__PURE__*/_react["default"].createElement("i", {
71
+ className: "sdocfont sdoc-copy icon-font"
72
+ })), isShowTooltip && /*#__PURE__*/_react["default"].createElement(_tooltip["default"], {
73
+ target: "sdoc_video_copy",
74
+ placement: "top",
75
+ fade: true
76
+ }, t('Copy')), /*#__PURE__*/_react["default"].createElement("span", {
77
+ id: "sdoc_video_delete",
78
+ role: "button",
79
+ className: "op-item",
80
+ onClick: onDeleteVideo
81
+ }, /*#__PURE__*/_react["default"].createElement("i", {
82
+ className: "sdocfont sdoc-delete icon-font"
83
+ }), isShowTooltip && /*#__PURE__*/_react["default"].createElement(_tooltip["default"], {
84
+ target: "sdoc_video_delete",
85
+ placement: "top",
86
+ fade: true
87
+ }, t('Delete')))), /*#__PURE__*/_react["default"].createElement("span", {
88
+ className: "op-group-item"
89
+ }, /*#__PURE__*/_react["default"].createElement("span", {
90
+ id: "sdoc_video_full_screen_mode",
91
+ role: "button",
92
+ className: "op-item",
93
+ onClick: handleFullScreen
94
+ }, /*#__PURE__*/_react["default"].createElement("i", {
95
+ className: "sdocfont sdoc-fullscreen icon-font"
96
+ }), isShowTooltip && /*#__PURE__*/_react["default"].createElement(_tooltip["default"], {
97
+ target: "sdoc_video_full_screen_mode",
98
+ placement: "top",
99
+ fade: true
100
+ }, t('Full_screen_mode'))))))));
101
+ };
102
+ var _default = exports["default"] = (0, _reactI18next.withTranslation)('sdoc-editor')(VideoHoverMenu);
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.renderVideo = renderVideo;
9
+ var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/createForOfIteratorHelper"));
9
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/defineProperty"));
10
11
  var _objectSpread4 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
11
12
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
@@ -13,7 +14,9 @@ var _react = _interopRequireWildcard(require("react"));
13
14
  var _reactI18next = require("react-i18next");
14
15
  var _slate = require("@seafile/slate");
15
16
  var _slateReact = require("@seafile/slate-react");
17
+ var _useScrollContext = require("../../../hooks/use-scroll-context");
16
18
  var _helpers = require("./helpers");
19
+ var _hoverMenu = _interopRequireDefault(require("./hover-menu"));
17
20
  require("./index.css");
18
21
  var Video = function Video(_ref) {
19
22
  var _videoStates$element$;
@@ -33,10 +36,15 @@ var Video = function Video(_ref) {
33
36
  _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
34
37
  videoStates = _useState6[0],
35
38
  setVideoStates = _useState6[1];
39
+ var _useState7 = (0, _react.useState)({}),
40
+ _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
41
+ menuPosition = _useState8[0],
42
+ setMenuPosition = _useState8[1];
43
+ var scrollRef = (0, _useScrollContext.useScrollContext)();
36
44
  var videoName = (data === null || data === void 0 ? void 0 : data.name) || (data === null || data === void 0 ? void 0 : data.src);
37
45
  var videoSize = data === null || data === void 0 ? void 0 : data.size;
38
46
  var isEmbeddableLink = data === null || data === void 0 ? void 0 : data.is_embeddable_link;
39
- var readonly = (0, _slateReact.useReadOnly)();
47
+ var readOnly = (0, _slateReact.useReadOnly)();
40
48
  var handlePlay = function handlePlay() {
41
49
  setVideoStates(function (prev) {
42
50
  return (0, _objectSpread4["default"])((0, _objectSpread4["default"])({}, prev), {}, (0, _defineProperty2["default"])({}, element.id, false));
@@ -63,6 +71,25 @@ var Video = function Video(_ref) {
63
71
  setIsSelected(false);
64
72
  }
65
73
  }, []);
74
+ var setPosition = (0, _react.useCallback)(function (elem) {
75
+ if (elem) {
76
+ var _elem$getBoundingClie = elem.getBoundingClientRect(),
77
+ top = _elem$getBoundingClie.top,
78
+ left = _elem$getBoundingClie.left;
79
+ var menuTop = top - 42; // top = top distance - menu height
80
+ var menuLeft = left - 18; // left = left distance - (menu width / 2)
81
+ var newMenuPosition = {
82
+ top: menuTop,
83
+ left: menuLeft
84
+ };
85
+ setMenuPosition(newMenuPosition);
86
+ }
87
+ // eslint-disable-next-line react-hooks/exhaustive-deps
88
+ }, []);
89
+ var onScroll = (0, _react.useCallback)(function (e) {
90
+ setPosition(videoRef.current);
91
+ // eslint-disable-next-line react-hooks/exhaustive-deps
92
+ }, []);
66
93
  (0, _react.useEffect)(function () {
67
94
  var videoElement = videoRef.current;
68
95
  if (videoElement) {
@@ -76,6 +103,42 @@ var Video = function Video(_ref) {
76
103
  document.removeEventListener('click', onClickOutside);
77
104
  };
78
105
  }, [onClickOutside]);
106
+ (0, _react.useEffect)(function () {
107
+ var observerRefValue = null;
108
+ var resizeObserver = null;
109
+ if (isSelected) {
110
+ scrollRef.current && scrollRef.current.addEventListener('scroll', onScroll);
111
+ observerRefValue = scrollRef.current;
112
+ resizeObserver = new ResizeObserver(function (entries) {
113
+ var _iterator = (0, _createForOfIteratorHelper2["default"])(entries),
114
+ _step;
115
+ try {
116
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
117
+ var entry = _step.value;
118
+ if (resizeObserver) {
119
+ onScroll();
120
+ }
121
+ }
122
+ } catch (err) {
123
+ _iterator.e(err);
124
+ } finally {
125
+ _iterator.f();
126
+ }
127
+ });
128
+ resizeObserver.observe(scrollRef.current);
129
+ } else {
130
+ scrollRef.current && scrollRef.current.removeEventListener('scroll', onScroll);
131
+ }
132
+ return function () {
133
+ if (observerRefValue) {
134
+ observerRefValue.removeEventListener('scroll', onScroll);
135
+ }
136
+ if (resizeObserver) {
137
+ resizeObserver.disconnect();
138
+ }
139
+ };
140
+ // eslint-disable-next-line react-hooks/exhaustive-deps
141
+ }, [isSelected]);
79
142
  return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, !isLoaded && /*#__PURE__*/_react["default"].createElement("div", {
80
143
  className: "video-loading-placeholder"
81
144
  }, /*#__PURE__*/_react["default"].createElement("img", {
@@ -106,7 +169,7 @@ var Video = function Video(_ref) {
106
169
  ref: videoRef,
107
170
  src: (0, _helpers.getVideoURL)(data, editor),
108
171
  controls: true,
109
- controlsList: readonly && 'nofullscreen',
172
+ controlsList: readOnly ? 'nofullscreen' : undefined,
110
173
  onClick: onClickVideo,
111
174
  draggable: false,
112
175
  onPlay: handlePlay,
@@ -133,7 +196,13 @@ var Video = function Video(_ref) {
133
196
  height: '100%',
134
197
  border: 'none'
135
198
  }
136
- }))));
199
+ }))), isSelected && !isEmbeddableLink && !readOnly && editor.selection && _slate.Range.isCollapsed(editor.selection) && /*#__PURE__*/_react["default"].createElement(_hoverMenu["default"], {
200
+ editor: editor,
201
+ menuPosition: menuPosition,
202
+ element: element,
203
+ videoRef: videoRef,
204
+ setIsSelected: setIsSelected
205
+ }));
137
206
  };
138
207
  var SdocVideo = (0, _reactI18next.withTranslation)('sdoc-editor')(Video);
139
208
  function renderVideo(props, editor) {
@@ -17,8 +17,7 @@ var _fullWidthMode = require("../utils/full-width-mode");
17
17
  var _localStorageUtils = _interopRequireDefault(require("../utils/local-storage-utils"));
18
18
  function ArticleContainer(_ref) {
19
19
  var editor = _ref.editor,
20
- children = _ref.children,
21
- isShowCommentPanelInWiki = _ref.isShowCommentPanelInWiki;
20
+ children = _ref.children;
22
21
  var scrollRef = (0, _useScrollContext.useScrollContext)();
23
22
  var articleRef = (0, _react.useRef)(null);
24
23
  var _useState = (0, _react.useState)({}),
@@ -111,6 +111,7 @@ var RightPanel = function RightPanel(_ref) {
111
111
  return function () {
112
112
  unsubscribeTransferFileId();
113
113
  };
114
+ // eslint-disable-next-line react-hooks/exhaustive-deps
114
115
  }, []);
115
116
  if (!displayPluginName) return null;
116
117
  var plugin = plugins.find(function (p) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seafile/sdoc-editor",
3
- "version": "2.0.190",
3
+ "version": "2.0.192",
4
4
  "main": "dist/index.js",
5
5
  "scripts": {
6
6
  "test": "jest",
@@ -71,5 +71,5 @@
71
71
  "publishConfig": {
72
72
  "access": "public"
73
73
  },
74
- "gitHead": "759cb457e2ad7e89ef7c4bcb94a539b7fc387136"
74
+ "gitHead": "f693ae4b928675528ce40a396618c458f9316a45"
75
75
  }