@seafile/sdoc-editor 1.0.222 → 1.0.224
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.
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
3
4
|
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
5
|
Object.defineProperty(exports, "__esModule", {
|
|
5
6
|
value: true
|
|
@@ -9,7 +10,9 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
9
10
|
var _reactDom = require("react-dom");
|
|
10
11
|
var _reactI18next = require("react-i18next");
|
|
11
12
|
var _slateReact = require("@seafile/slate-react");
|
|
13
|
+
var _isUrl = _interopRequireDefault(require("is-url"));
|
|
12
14
|
var _helpers = require("../helpers");
|
|
15
|
+
var _toast = _interopRequireDefault(require("../../../../../components/toast"));
|
|
13
16
|
require("./index.css");
|
|
14
17
|
const LinkHover = _ref => {
|
|
15
18
|
let {
|
|
@@ -24,6 +27,11 @@ const LinkHover = _ref => {
|
|
|
24
27
|
t
|
|
25
28
|
} = (0, _reactI18next.useTranslation)('sdoc-editor');
|
|
26
29
|
const onMouseDown = (0, _react.useCallback)(event => {
|
|
30
|
+
if (!(0, _isUrl.default)(element.href)) {
|
|
31
|
+
event.preventDefault();
|
|
32
|
+
_toast.default.danger(t('The_link_is_invalid'));
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
27
35
|
event.stopPropagation();
|
|
28
36
|
if (!(0, _helpers.isWeChat)()) {
|
|
29
37
|
window.open(element.href);
|
|
@@ -31,7 +39,7 @@ const LinkHover = _ref => {
|
|
|
31
39
|
// eslint-disable-next-line no-restricted-globals
|
|
32
40
|
location.href = element.href;
|
|
33
41
|
}
|
|
34
|
-
}, [element.href]);
|
|
42
|
+
}, [element.href, t]);
|
|
35
43
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/(0, _reactDom.createPortal)( /*#__PURE__*/_react.default.createElement("div", {
|
|
36
44
|
id: "link-op-menu",
|
|
37
45
|
className: "link-op-menu",
|
|
@@ -8,6 +8,8 @@ exports.default = void 0;
|
|
|
8
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/defineProperty"));
|
|
9
9
|
var _react = _interopRequireDefault(require("react"));
|
|
10
10
|
var _slate = require("@seafile/slate");
|
|
11
|
+
var _reactI18next = require("react-i18next");
|
|
12
|
+
var _isUrl = _interopRequireDefault(require("is-url"));
|
|
11
13
|
var _helpers = require("./helpers");
|
|
12
14
|
var _hover = _interopRequireDefault(require("./hover"));
|
|
13
15
|
var _eventBus = _interopRequireDefault(require("../../../utils/event-bus"));
|
|
@@ -15,6 +17,7 @@ var _constants = require("../../../constants");
|
|
|
15
17
|
var _constants2 = require("../../constants");
|
|
16
18
|
var _InlineBugFixWrapper = _interopRequireDefault(require("../../commons/Inline-bug-fix-wrapper"));
|
|
17
19
|
var _useScrollContext = require("../../../hooks/use-scroll-context");
|
|
20
|
+
var _toast = _interopRequireDefault(require("../../../../components/toast"));
|
|
18
21
|
class Link extends _react.default.Component {
|
|
19
22
|
constructor(props) {
|
|
20
23
|
super(props);
|
|
@@ -74,6 +77,22 @@ class Link extends _react.default.Component {
|
|
|
74
77
|
} = this.props;
|
|
75
78
|
(0, _helpers.unWrapLinkNode)(editor);
|
|
76
79
|
});
|
|
80
|
+
(0, _defineProperty2.default)(this, "onOpenLink", event => {
|
|
81
|
+
const {
|
|
82
|
+
element
|
|
83
|
+
} = this.props;
|
|
84
|
+
if (!(0, _isUrl.default)(element.href)) {
|
|
85
|
+
event.preventDefault();
|
|
86
|
+
_toast.default.danger('The_link_is_invalid');
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
if (!(0, _helpers.isWeChat)()) {
|
|
90
|
+
window.open(element.href, '_blank', 'noopener,noreferrer');
|
|
91
|
+
} else {
|
|
92
|
+
// eslint-disable-next-line no-restricted-globals
|
|
93
|
+
location.href = element.href;
|
|
94
|
+
}
|
|
95
|
+
});
|
|
77
96
|
(0, _defineProperty2.default)(this, "openDialog", () => {
|
|
78
97
|
const {
|
|
79
98
|
element
|
|
@@ -114,6 +133,7 @@ class Link extends _react.default.Component {
|
|
|
114
133
|
}, attributes), /*#__PURE__*/_react.default.createElement("a", {
|
|
115
134
|
href: element.href,
|
|
116
135
|
title: element.title,
|
|
136
|
+
onClick: this.onOpenLink,
|
|
117
137
|
target: "_blank",
|
|
118
138
|
rel: "noreferrer"
|
|
119
139
|
}, children));
|
|
@@ -136,8 +156,9 @@ class Link extends _react.default.Component {
|
|
|
136
156
|
}
|
|
137
157
|
}
|
|
138
158
|
(0, _defineProperty2.default)(Link, "contextType", _useScrollContext.ScrollContext);
|
|
159
|
+
const SdocLink = (0, _reactI18next.withTranslation)('sdoc-editor')(Link);
|
|
139
160
|
const renderLink = (props, editor, readonly) => {
|
|
140
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
161
|
+
return /*#__PURE__*/_react.default.createElement(SdocLink, Object.assign({}, props, {
|
|
141
162
|
editor: editor,
|
|
142
163
|
readonly: readonly
|
|
143
164
|
}));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@seafile/sdoc-editor",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.224",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "This is a sdoc editor",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"@seafile/slate-history": "0.86.2",
|
|
12
12
|
"@seafile/slate-hyperscript": "0.81.7",
|
|
13
13
|
"@seafile/slate-react": "0.92.7",
|
|
14
|
-
"axios": "^1.
|
|
14
|
+
"axios": "^1.8.2",
|
|
15
15
|
"classnames": "2.3.2",
|
|
16
16
|
"copy-to-clipboard": "^3.3.3",
|
|
17
17
|
"dayjs": "1.10.7",
|
|
@@ -614,5 +614,6 @@
|
|
|
614
614
|
"Image_cannot_be_copied_Please_download_the_source_image": "Image cannot be copied. Please download the source image,",
|
|
615
615
|
"And_select_insert_-_image_to_upload": "and select 「insert」 - 「image」 to upload.",
|
|
616
616
|
"Image_copy_error": "Image copy error",
|
|
617
|
-
"Image_is_uploading": "Image is uploading..."
|
|
617
|
+
"Image_is_uploading": "Image is uploading...",
|
|
618
|
+
"The_link_is_invalid": "The link is invalid."
|
|
618
619
|
}
|
|
@@ -614,5 +614,6 @@
|
|
|
614
614
|
"Image_cannot_be_copied_Please_download_the_source_image": "此照片不支持复制,请下载原图",
|
|
615
615
|
"And_select_insert_-_image_to_upload": "后点击工具栏「插入」- 「照片」上传",
|
|
616
616
|
"Image_copy_error": "图片复制错误",
|
|
617
|
-
"Image_is_uploading": "图片正在上传..."
|
|
617
|
+
"Image_is_uploading": "图片正在上传...",
|
|
618
|
+
"The_link_is_invalid": "该链接无效。"
|
|
618
619
|
}
|