@seafile/sdoc-editor 3.0.75 → 3.0.77

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.
@@ -13,6 +13,7 @@ var _reactI18next = require("react-i18next");
13
13
  var _slate = require("@seafile/slate");
14
14
  var _slateReact = require("@seafile/slate-react");
15
15
  var _isUrl = _interopRequireDefault(require("is-url"));
16
+ var _toast = _interopRequireDefault(require("../../../../components/toast"));
16
17
  var _tooltip = _interopRequireDefault(require("../../../../components/tooltip"));
17
18
  var _eventBus = _interopRequireDefault(require("../../../../utils/event-bus"));
18
19
  var _helpers = require("../helpers");
@@ -38,6 +39,7 @@ var LinkHover = function LinkHover(_ref) {
38
39
  var onMouseDown = (0, _react.useCallback)(function (event) {
39
40
  if (!(0, _isUrl["default"])(element.href)) {
40
41
  event.preventDefault();
42
+ _toast["default"].danger(t('The_link_is_invalid'));
41
43
  return;
42
44
  }
43
45
  event.stopPropagation();
@@ -12,9 +12,11 @@ var _callSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/cal
12
12
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/inherits"));
13
13
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/defineProperty"));
14
14
  var _react = _interopRequireDefault(require("react"));
15
+ var _reactI18next = require("react-i18next");
15
16
  var _slate = require("@seafile/slate");
16
17
  var _classnames = _interopRequireDefault(require("classnames"));
17
18
  var _isUrl = _interopRequireDefault(require("is-url"));
19
+ var _toast = _interopRequireDefault(require("../../../components/toast"));
18
20
  var _constants = require("../../../constants");
19
21
  var _useScrollContext = require("../../../hooks/use-scroll-context");
20
22
  var _commonUtils = require("../../../utils/common-utils");
@@ -112,6 +114,22 @@ var Link = /*#__PURE__*/function (_React$Component) {
112
114
  var editor = _this.props.editor;
113
115
  (0, _helpers.unWrapLinkNode)(editor);
114
116
  });
117
+ (0, _defineProperty2["default"])(_this, "onOpenLink", function (event) {
118
+ var _this$props = _this.props,
119
+ element = _this$props.element,
120
+ t = _this$props.t;
121
+ if (!(0, _isUrl["default"])(element.href)) {
122
+ event.preventDefault();
123
+ _toast["default"].danger(t('The_link_is_invalid'));
124
+ return;
125
+ }
126
+ if (!(0, _helpers.isWeChat)()) {
127
+ window.open(element.href, '_blank', 'noopener,noreferrer');
128
+ } else {
129
+ // eslint-disable-next-line no-restricted-globals
130
+ location.href = element.href;
131
+ }
132
+ });
115
133
  (0, _defineProperty2["default"])(_this, "openDialog", function () {
116
134
  var element = _this.props.element;
117
135
  _this.eventBus.dispatch(_constants.INTERNAL_EVENT.INSERT_ELEMENT, {
@@ -139,19 +157,16 @@ var Link = /*#__PURE__*/function (_React$Component) {
139
157
  key: "render",
140
158
  value: function render() {
141
159
  var _element$children$2;
142
- var _this$props = this.props,
143
- attributes = _this$props.attributes,
144
- children = _this$props.children,
145
- element = _this$props.element,
146
- editor = _this$props.editor,
147
- readonly = _this$props.readonly;
160
+ var _this$props2 = this.props,
161
+ attributes = _this$props2.attributes,
162
+ children = _this$props2.children,
163
+ element = _this$props2.element,
164
+ editor = _this$props2.editor,
165
+ readonly = _this$props2.readonly;
148
166
  var _this$state = this.state,
149
167
  isShowLinkMenu = _this$state.isShowLinkMenu,
150
168
  menuPosition = _this$state.menuPosition;
151
169
  var className = isShowLinkMenu ? 'seafile-ed-hovermenu-mouseclick' : null;
152
- if (!(0, _isUrl["default"])(element.href)) {
153
- return /*#__PURE__*/_react["default"].createElement("span", attributes, /*#__PURE__*/_react["default"].createElement("span", null, children));
154
- }
155
170
  if (readonly) {
156
171
  var _element$children$;
157
172
  return /*#__PURE__*/_react["default"].createElement("span", Object.assign({
@@ -159,6 +174,7 @@ var Link = /*#__PURE__*/function (_React$Component) {
159
174
  }, attributes), /*#__PURE__*/_react["default"].createElement("a", {
160
175
  href: element.href,
161
176
  title: (_element$children$ = element.children[0]) === null || _element$children$ === void 0 ? void 0 : _element$children$.text,
177
+ onClick: this.onOpenLink,
162
178
  target: "_blank",
163
179
  rel: "noreferrer"
164
180
  }, children));
@@ -182,8 +198,9 @@ var Link = /*#__PURE__*/function (_React$Component) {
182
198
  }]);
183
199
  }(_react["default"].Component);
184
200
  (0, _defineProperty2["default"])(Link, "contextType", _useScrollContext.ScrollContext);
201
+ var SdocLink = (0, _reactI18next.withTranslation)('sdoc-editor')(Link);
185
202
  var renderLink = function renderLink(props, editor, readonly) {
186
- return /*#__PURE__*/_react["default"].createElement(Link, Object.assign({}, props, {
203
+ return /*#__PURE__*/_react["default"].createElement(SdocLink, Object.assign({}, props, {
187
204
  editor: editor,
188
205
  readonly: readonly
189
206
  }));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seafile/sdoc-editor",
3
- "version": "3.0.75",
3
+ "version": "3.0.77",
4
4
  "main": "dist/index.js",
5
5
  "scripts": {
6
6
  "test": "jest",
@@ -72,5 +72,5 @@
72
72
  "publishConfig": {
73
73
  "access": "public"
74
74
  },
75
- "gitHead": "8d8c95e1ddd3d22992930f73c25bf7973aca4c2c"
75
+ "gitHead": "14bfeda7b2f52c218fa9ac1a027d75a99338bb90"
76
76
  }