@seafile/seafile-editor 2.0.48 → 2.0.49-beta1

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.
@@ -20,9 +20,11 @@ var _useAttachments = _interopRequireDefault(require("../../hooks/use-attachment
20
20
  var _common = require("../../utils/common");
21
21
  var _outline = _interopRequireDefault(require("../../containers/outline"));
22
22
  var _useContainerStyle = _interopRequireDefault(require("../../hooks/use-container-style"));
23
+ var _userLinkClick = _interopRequireDefault(require("../../hooks/user-link-click"));
23
24
  require("./style.css");
24
25
  const isMacOS = (0, _common.isMac)();
25
26
  function SlateEditor(_ref) {
27
+ var _editor$api;
26
28
  let {
27
29
  value,
28
30
  editorApi,
@@ -31,6 +33,7 @@ function SlateEditor(_ref) {
31
33
  isReadonly,
32
34
  isSupportFormula,
33
35
  isSupportInsertSeafileImage,
36
+ onLinkClick,
34
37
  children
35
38
  } = _ref;
36
39
  const scrollRef = (0, _react.useRef)(null);
@@ -49,6 +52,7 @@ function SlateEditor(_ref) {
49
52
  return new _eventHandler.default(editor);
50
53
  }, [editor]);
51
54
  (0, _useAttachments.default)(editor);
55
+ (0, _userLinkClick.default)(editor._id, editor === null || editor === void 0 ? void 0 : (_editor$api = editor.api) === null || _editor$api === void 0 ? void 0 : _editor$api.server, onLinkClick);
52
56
  const decorate = (0, _extension.useHighlight)(editor);
53
57
  const onChange = (0, _react.useCallback)(value => {
54
58
  setSlateValue(value);
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.upsertLinkText = exports.updateLink = exports.unWrapLinkNode = exports.isMenuDisabled = exports.isLinkType = exports.insertSeafileLink = exports.insertLink = exports.getLinkInfo = exports.generateLinkNode = void 0;
7
+ exports.upsertLinkText = exports.updateLink = exports.unWrapLinkNode = exports.isMenuDisabled = exports.isLinkType = exports.insertSeafileLink = exports.insertLink = exports.getLinkInfo = exports.getElementHref = exports.generateLinkNode = void 0;
8
8
  var _slate = require("slate");
9
9
  var _slugid = _interopRequireDefault(require("slugid"));
10
10
  var _queries = require("../../core/queries");
@@ -182,7 +182,7 @@ const getLinkInfo = editor => {
182
182
  const [node, path] = match;
183
183
  const showedText = (0, _queries.getEditorString)(editor, path);
184
184
  return {
185
- linkUrl: node.url,
185
+ linkUrl: getElementHref(node),
186
186
  linkTitle: showedText || node.title,
187
187
  path: path
188
188
  };
@@ -250,4 +250,9 @@ const unWrapLinkNode = async editor => {
250
250
  match: n => (0, _queries.getNodeType)(n) === _constants.ELementTypes.LINK
251
251
  });
252
252
  };
253
- exports.unWrapLinkNode = unWrapLinkNode;
253
+ exports.unWrapLinkNode = unWrapLinkNode;
254
+ const getElementHref = element => {
255
+ if (!element) return '';
256
+ return element.href || element.url;
257
+ };
258
+ exports.getElementHref = getElementHref;
@@ -75,8 +75,12 @@ const renderLink = (_ref, editor) => {
75
75
  const onHrefClick = (0, _react.useCallback)(e => {
76
76
  e.preventDefault();
77
77
  }, []);
78
+ const url = (0, _helper.getElementHref)(element);
78
79
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/(0, _react.isValidElement)(render) ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/(0, _react.cloneElement)(render, {
79
- element,
80
+ element: {
81
+ ...element,
82
+ url
83
+ },
80
84
  isShowPopover,
81
85
  onLinkClick,
82
86
  onHrefClick,
@@ -85,16 +89,16 @@ const renderLink = (_ref, editor) => {
85
89
  editor
86
90
  })) : /*#__PURE__*/_react.default.createElement("span", Object.assign({
87
91
  onClick: onLinkClick,
88
- "data-url": element.url,
92
+ "data-url": url,
89
93
  className: (0, _classnames.default)('sf-virtual-link', {
90
94
  selected: isShowPopover
91
95
  })
92
96
  }, attributes), /*#__PURE__*/_react.default.createElement("a", {
93
- href: element.url,
97
+ href: url,
94
98
  onClick: onHrefClick
95
99
  }, children)), isLinkActive && isShowPopover && /*#__PURE__*/_react.default.createElement(_linkPopover.default, {
96
100
  popoverPosition: popoverPosition,
97
- linkUrl: element.url,
101
+ linkUrl: url,
98
102
  editor: editor,
99
103
  onClosePopover: onClosePopover
100
104
  }));
@@ -23,6 +23,7 @@ const SimpleEditor = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
23
23
  isSupportInsertSeafileImage,
24
24
  onSave: propsOnSave,
25
25
  onContentChanged: propsOnContentChanged,
26
+ onLinkClick,
26
27
  children
27
28
  } = _ref;
28
29
  const [richValue, setRichValue] = (0, _react.useState)([]);
@@ -61,6 +62,7 @@ const SimpleEditor = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
61
62
  editorApi: editorApi,
62
63
  onSave: propsOnSave,
63
64
  onContentChanged: onContentChanged,
65
+ onLinkClick,
64
66
  children: children
65
67
  };
66
68
  if (isFetching || isLoading || isLoadingMathJax) {
@@ -11,12 +11,12 @@ const linkRule = (element, parseChild) => {
11
11
  const {
12
12
  nodeName
13
13
  } = element;
14
- const content = element.textContent || element.getAttribute('title') || element.getAttribute('href');
14
+ const content = element.textContent || element.getAttribute('title') || element.getAttribute('href') || element.getAttribute('url');
15
15
  if (nodeName === 'A') {
16
16
  return {
17
17
  id: _slugid.default.nice(),
18
18
  type: _constants.LINK,
19
- url: element.getAttribute('href') || content,
19
+ url: element.getAttribute('href') || element.getAttribute('url') || content,
20
20
  title: element.getAttribute('title'),
21
21
  children: [{
22
22
  id: _slugid.default.nice(),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seafile/seafile-editor",
3
- "version": "2.0.48",
3
+ "version": "2.0.49beta1",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {