@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.
@@ -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 menuPosition = _ref.menuPosition,
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",
@@ -58,3 +58,12 @@
58
58
  height: 80%;
59
59
  overflow: auto;
60
60
  }
61
+
62
+ .sdoc-whiteboard-tip {
63
+ width: 100%;
64
+ height: 100%;
65
+ display: flex;
66
+ align-items: center;
67
+ justify-content: center;
68
+ color: red;
69
+ }
@@ -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
- })), isSelected && !readOnly && !isShowZoomOut && /*#__PURE__*/_react["default"].createElement(_hoverMenu["default"], {
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.208",
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": "89aff4c4cdc8893ed6990dc3781c8bdbd3b66c45"
74
+ "gitHead": "6115ac7961a116de88085d77e691f89f089b79ae"
75
75
  }