@seafile/seafile-editor 2.0.48 → 2.0.49-beta
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
|
|
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":
|
|
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:
|
|
97
|
+
href: url,
|
|
94
98
|
onClick: onHrefClick
|
|
95
99
|
}, children)), isLinkActive && isShowPopover && /*#__PURE__*/_react.default.createElement(_linkPopover.default, {
|
|
96
100
|
popoverPosition: popoverPosition,
|
|
97
|
-
linkUrl:
|
|
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) {
|