@seafile/sdoc-editor 2.0.208 → 2.0.209
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.
- package/dist/extension/plugins/link/hover/index.js +5 -0
- package/dist/extension/plugins/link/render-elem.js +4 -0
- package/dist/extension/plugins/video/render-elem.js +1 -0
- package/dist/extension/plugins/whiteboard/hover-menu/index.js +4 -3
- package/dist/extension/plugins/whiteboard/index.css +9 -0
- package/dist/extension/plugins/whiteboard/render-elem.js +17 -3
- package/package.json +2 -2
|
@@ -12,6 +12,7 @@ var _reactDom = require("react-dom");
|
|
|
12
12
|
var _reactI18next = require("react-i18next");
|
|
13
13
|
var _slate = require("@seafile/slate");
|
|
14
14
|
var _slateReact = require("@seafile/slate-react");
|
|
15
|
+
var _isUrl = _interopRequireDefault(require("is-url"));
|
|
15
16
|
var _tooltip = _interopRequireDefault(require("../../../../components/tooltip"));
|
|
16
17
|
var _helpers = require("../helpers");
|
|
17
18
|
require("./index.css");
|
|
@@ -33,6 +34,10 @@ var LinkHover = function LinkHover(_ref) {
|
|
|
33
34
|
setIsShowTooltip(true);
|
|
34
35
|
}, []);
|
|
35
36
|
var onMouseDown = (0, _react.useCallback)(function (event) {
|
|
37
|
+
if (!(0, _isUrl["default"])(element.href)) {
|
|
38
|
+
event.preventDefault();
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
36
41
|
event.stopPropagation();
|
|
37
42
|
if (!(0, _helpers.isWeChat)()) {
|
|
38
43
|
window.open(element.href);
|
|
@@ -14,6 +14,7 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/es
|
|
|
14
14
|
var _react = _interopRequireDefault(require("react"));
|
|
15
15
|
var _slate = require("@seafile/slate");
|
|
16
16
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
17
|
+
var _isUrl = _interopRequireDefault(require("is-url"));
|
|
17
18
|
var _constants = require("../../../constants");
|
|
18
19
|
var _useScrollContext = require("../../../hooks/use-scroll-context");
|
|
19
20
|
var _eventBus = _interopRequireDefault(require("../../../utils/event-bus"));
|
|
@@ -128,6 +129,9 @@ var Link = /*#__PURE__*/function (_React$Component) {
|
|
|
128
129
|
isShowLinkMenu = _this$state.isShowLinkMenu,
|
|
129
130
|
menuPosition = _this$state.menuPosition;
|
|
130
131
|
var className = isShowLinkMenu ? 'seafile-ed-hovermenu-mouseclick' : null;
|
|
132
|
+
if (!(0, _isUrl["default"])(element.href)) {
|
|
133
|
+
return /*#__PURE__*/_react["default"].createElement("span", attributes, /*#__PURE__*/_react["default"].createElement("span", null, children));
|
|
134
|
+
}
|
|
131
135
|
if (readonly) {
|
|
132
136
|
var _element$children$;
|
|
133
137
|
return /*#__PURE__*/_react["default"].createElement("span", Object.assign({
|
|
@@ -110,6 +110,7 @@ var Video = function Video(_ref) {
|
|
|
110
110
|
scrollRef.current && scrollRef.current.addEventListener('scroll', onScroll);
|
|
111
111
|
observerRefValue = scrollRef.current;
|
|
112
112
|
resizeObserver = new ResizeObserver(function (entries) {
|
|
113
|
+
// eslint-disable-next-line no-unused-vars
|
|
113
114
|
var _iterator = (0, _createForOfIteratorHelper2["default"])(entries),
|
|
114
115
|
_step;
|
|
115
116
|
try {
|
|
@@ -13,7 +13,8 @@ var _tooltip = _interopRequireDefault(require("../../../../components/tooltip"))
|
|
|
13
13
|
var _commons = require("../../../commons");
|
|
14
14
|
require("./index.css");
|
|
15
15
|
var WhiteboardHoverMenu = function WhiteboardHoverMenu(_ref) {
|
|
16
|
-
var
|
|
16
|
+
var isValidUrl = _ref.isValidUrl,
|
|
17
|
+
menuPosition = _ref.menuPosition,
|
|
17
18
|
onOpen = _ref.onOpen,
|
|
18
19
|
openFullscreen = _ref.openFullscreen,
|
|
19
20
|
onDeleteWhiteboard = _ref.onDeleteWhiteboard;
|
|
@@ -31,7 +32,7 @@ var WhiteboardHoverMenu = function WhiteboardHoverMenu(_ref) {
|
|
|
31
32
|
style: menuPosition
|
|
32
33
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
33
34
|
className: "hover-menu-container"
|
|
34
|
-
}, /*#__PURE__*/_react["default"].createElement("span", {
|
|
35
|
+
}, isValidUrl && /*#__PURE__*/_react["default"].createElement("span", {
|
|
35
36
|
className: "op-group-item"
|
|
36
37
|
}, /*#__PURE__*/_react["default"].createElement("span", {
|
|
37
38
|
id: "sdoc_whiteboard_open",
|
|
@@ -53,7 +54,7 @@ var WhiteboardHoverMenu = function WhiteboardHoverMenu(_ref) {
|
|
|
53
54
|
target: "sdoc_whiteboard_delete",
|
|
54
55
|
placement: "top",
|
|
55
56
|
fade: true
|
|
56
|
-
}, t('Delete')))), /*#__PURE__*/_react["default"].createElement("span", {
|
|
57
|
+
}, t('Delete')))), isValidUrl && /*#__PURE__*/_react["default"].createElement("span", {
|
|
57
58
|
className: "op-group-item"
|
|
58
59
|
}, /*#__PURE__*/_react["default"].createElement("span", {
|
|
59
60
|
id: "sdoc_whiteboard_full_screen_mode",
|
|
@@ -10,9 +10,11 @@ var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime
|
|
|
10
10
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
|
|
11
11
|
var _react = _interopRequireWildcard(require("react"));
|
|
12
12
|
var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
13
|
+
var _reactI18next = require("react-i18next");
|
|
13
14
|
var _slate = require("@seafile/slate");
|
|
14
15
|
var _slateReact = require("@seafile/slate-react");
|
|
15
16
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
17
|
+
var _isUrl = _interopRequireDefault(require("is-url"));
|
|
16
18
|
var _constants = require("../../../constants");
|
|
17
19
|
var _context = _interopRequireDefault(require("../../../context"));
|
|
18
20
|
var _useScrollContext = require("../../../hooks/use-scroll-context");
|
|
@@ -33,6 +35,8 @@ var Whiteboard = function Whiteboard(_ref) {
|
|
|
33
35
|
var scrollRef = (0, _useScrollContext.useScrollContext)();
|
|
34
36
|
var isSelected = (0, _slateReact.useSelected)();
|
|
35
37
|
var readOnly = (0, _slateReact.useReadOnly)();
|
|
38
|
+
var _useTranslation = (0, _reactI18next.useTranslation)('sdoc-editor'),
|
|
39
|
+
t = _useTranslation.t;
|
|
36
40
|
var _useState = (0, _react.useState)({
|
|
37
41
|
top: '',
|
|
38
42
|
left: ''
|
|
@@ -44,7 +48,11 @@ var Whiteboard = function Whiteboard(_ref) {
|
|
|
44
48
|
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
45
49
|
isShowZoomOut = _useState4[0],
|
|
46
50
|
setIsShowZoomOut = _useState4[1];
|
|
51
|
+
var isValidUrl = (0, _react.useMemo)(function () {
|
|
52
|
+
return (0, _isUrl["default"])(link);
|
|
53
|
+
}, [link]);
|
|
47
54
|
(0, _react.useEffect)(function () {
|
|
55
|
+
if (!isValidUrl) return;
|
|
48
56
|
var handleMessage = function handleMessage(event) {
|
|
49
57
|
var _event$data;
|
|
50
58
|
if (((_event$data = event.data) === null || _event$data === void 0 ? void 0 : _event$data.type) === 'checkSdocParent') {
|
|
@@ -86,7 +94,7 @@ var Whiteboard = function Whiteboard(_ref) {
|
|
|
86
94
|
window.removeEventListener('message', handleMessage);
|
|
87
95
|
unsubscribeResizeArticle();
|
|
88
96
|
};
|
|
89
|
-
}, []);
|
|
97
|
+
}, [isValidUrl]);
|
|
90
98
|
var onDeleteWhiteboard = (0, _react.useCallback)(function () {
|
|
91
99
|
var path = _slateReact.ReactEditor.findPath(editor, element);
|
|
92
100
|
_slate.Transforms.removeNodes(editor, {
|
|
@@ -97,6 +105,7 @@ var Whiteboard = function Whiteboard(_ref) {
|
|
|
97
105
|
}, [editor, element]);
|
|
98
106
|
var handleDoubleClick = function handleDoubleClick(event) {
|
|
99
107
|
event.preventDefault();
|
|
108
|
+
if (!isValidUrl) return;
|
|
100
109
|
var siteRoot = _context["default"].getSetting('siteRoot');
|
|
101
110
|
var url = "".concat(siteRoot, "lib/").concat(repo_id, "/file").concat(file_path);
|
|
102
111
|
window.open(url, '_blank');
|
|
@@ -116,6 +125,7 @@ var Whiteboard = function Whiteboard(_ref) {
|
|
|
116
125
|
scrollRef.current.addEventListener('scroll', handleScroll);
|
|
117
126
|
observerRefValue = scrollRef.current;
|
|
118
127
|
resizeObserver = new ResizeObserver(function (entries) {
|
|
128
|
+
// eslint-disable-next-line no-unused-vars
|
|
119
129
|
var _iterator = (0, _createForOfIteratorHelper2["default"])(entries),
|
|
120
130
|
_step;
|
|
121
131
|
try {
|
|
@@ -172,7 +182,7 @@ var Whiteboard = function Whiteboard(_ref) {
|
|
|
172
182
|
scrolling: "no"
|
|
173
183
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
174
184
|
className: "sdoc-whiteboard-title"
|
|
175
|
-
}, title), /*#__PURE__*/_react["default"].createElement("iframe", {
|
|
185
|
+
}, title), isValidUrl && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("iframe", {
|
|
176
186
|
className: "sdoc-whiteboard-element",
|
|
177
187
|
title: title,
|
|
178
188
|
src: link,
|
|
@@ -181,7 +191,11 @@ var Whiteboard = function Whiteboard(_ref) {
|
|
|
181
191
|
className: "iframe-overlay",
|
|
182
192
|
onDoubleClick: handleDoubleClick,
|
|
183
193
|
onClick: handleOnClick
|
|
184
|
-
})),
|
|
194
|
+
})), !isValidUrl && /*#__PURE__*/_react["default"].createElement("div", {
|
|
195
|
+
ref: whiteboardRef,
|
|
196
|
+
className: "sdoc-whiteboard-tip"
|
|
197
|
+
}, t('Whiteboard_link_invalid_tip'))), isSelected && !readOnly && !isShowZoomOut && /*#__PURE__*/_react["default"].createElement(_hoverMenu["default"], {
|
|
198
|
+
isValidUrl: isValidUrl,
|
|
185
199
|
menuPosition: menuPosition,
|
|
186
200
|
onOpen: handleDoubleClick,
|
|
187
201
|
openFullscreen: openFullscreen,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@seafile/sdoc-editor",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.209",
|
|
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": "
|
|
74
|
+
"gitHead": "6115ac7961a116de88085d77e691f89f089b79ae"
|
|
75
75
|
}
|