@seafile/sdoc-editor 2.0.209 → 2.0.211

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 _helpers = require("../helpers");
18
19
  require("./index.css");
@@ -36,6 +37,7 @@ var LinkHover = function LinkHover(_ref) {
36
37
  var onMouseDown = (0, _react.useCallback)(function (event) {
37
38
  if (!(0, _isUrl["default"])(element.href)) {
38
39
  event.preventDefault();
40
+ _toast["default"].danger(t('The_link_is_invalid'));
39
41
  return;
40
42
  }
41
43
  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 _eventBus = _interopRequireDefault(require("../../../utils/event-bus"));
@@ -92,6 +94,22 @@ var Link = /*#__PURE__*/function (_React$Component) {
92
94
  var editor = _this.props.editor;
93
95
  (0, _helpers.unWrapLinkNode)(editor);
94
96
  });
97
+ (0, _defineProperty2["default"])(_this, "onOpenLink", function (event) {
98
+ var _this$props = _this.props,
99
+ element = _this$props.element,
100
+ t = _this$props.t;
101
+ if (!(0, _isUrl["default"])(element.href)) {
102
+ event.preventDefault();
103
+ _toast["default"].danger(t('The_link_is_invalid'));
104
+ return;
105
+ }
106
+ if (!(0, _helpers.isWeChat)()) {
107
+ window.open(element.href, '_blank', 'noopener,noreferrer');
108
+ } else {
109
+ // eslint-disable-next-line no-restricted-globals
110
+ location.href = element.href;
111
+ }
112
+ });
95
113
  (0, _defineProperty2["default"])(_this, "openDialog", function () {
96
114
  var element = _this.props.element;
97
115
  _this.eventBus.dispatch(_constants.INTERNAL_EVENT.INSERT_ELEMENT, {
@@ -119,19 +137,16 @@ var Link = /*#__PURE__*/function (_React$Component) {
119
137
  key: "render",
120
138
  value: function render() {
121
139
  var _element$children$2;
122
- var _this$props = this.props,
123
- attributes = _this$props.attributes,
124
- children = _this$props.children,
125
- element = _this$props.element,
126
- editor = _this$props.editor,
127
- readonly = _this$props.readonly;
140
+ var _this$props2 = this.props,
141
+ attributes = _this$props2.attributes,
142
+ children = _this$props2.children,
143
+ element = _this$props2.element,
144
+ editor = _this$props2.editor,
145
+ readonly = _this$props2.readonly;
128
146
  var _this$state = this.state,
129
147
  isShowLinkMenu = _this$state.isShowLinkMenu,
130
148
  menuPosition = _this$state.menuPosition;
131
149
  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
- }
135
150
  if (readonly) {
136
151
  var _element$children$;
137
152
  return /*#__PURE__*/_react["default"].createElement("span", Object.assign({
@@ -139,6 +154,7 @@ var Link = /*#__PURE__*/function (_React$Component) {
139
154
  }, attributes), /*#__PURE__*/_react["default"].createElement("a", {
140
155
  href: element.href,
141
156
  title: (_element$children$ = element.children[0]) === null || _element$children$ === void 0 ? void 0 : _element$children$.text,
157
+ onClick: this.onOpenLink,
142
158
  target: "_blank",
143
159
  rel: "noreferrer"
144
160
  }, children));
@@ -162,8 +178,9 @@ var Link = /*#__PURE__*/function (_React$Component) {
162
178
  }]);
163
179
  }(_react["default"].Component);
164
180
  (0, _defineProperty2["default"])(Link, "contextType", _useScrollContext.ScrollContext);
181
+ var SdocLink = (0, _reactI18next.withTranslation)('sdoc-editor')(Link);
165
182
  var renderLink = function renderLink(props, editor, readonly) {
166
- return /*#__PURE__*/_react["default"].createElement(Link, Object.assign({}, props, {
183
+ return /*#__PURE__*/_react["default"].createElement(SdocLink, Object.assign({}, props, {
167
184
  editor: editor,
168
185
  readonly: readonly
169
186
  }));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seafile/sdoc-editor",
3
- "version": "2.0.209",
3
+ "version": "2.0.211",
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": "6115ac7961a116de88085d77e691f89f089b79ae"
74
+ "gitHead": "0012aa81d40fe7abc7aa0592421d26dc1a12eae8"
75
75
  }