mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-14 06:11:16 +00:00
optimize seafile editor link click
This commit is contained in:
14
frontend/package-lock.json
generated
14
frontend/package-lock.json
generated
@@ -14,7 +14,7 @@
|
|||||||
"@seafile/resumablejs": "1.1.16",
|
"@seafile/resumablejs": "1.1.16",
|
||||||
"@seafile/sdoc-editor": "0.5.1",
|
"@seafile/sdoc-editor": "0.5.1",
|
||||||
"@seafile/seafile-calendar": "0.0.12",
|
"@seafile/seafile-calendar": "0.0.12",
|
||||||
"@seafile/seafile-editor": "1.0.20",
|
"@seafile/seafile-editor": "1.0.21",
|
||||||
"@uiw/codemirror-extensions-langs": "^4.19.4",
|
"@uiw/codemirror-extensions-langs": "^4.19.4",
|
||||||
"@uiw/react-codemirror": "^4.19.4",
|
"@uiw/react-codemirror": "^4.19.4",
|
||||||
"chart.js": "2.9.4",
|
"chart.js": "2.9.4",
|
||||||
@@ -4838,9 +4838,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@seafile/seafile-editor": {
|
"node_modules/@seafile/seafile-editor": {
|
||||||
"version": "1.0.20",
|
"version": "1.0.21",
|
||||||
"resolved": "https://registry.npmjs.org/@seafile/seafile-editor/-/seafile-editor-1.0.20.tgz",
|
"resolved": "https://registry.npmjs.org/@seafile/seafile-editor/-/seafile-editor-1.0.21.tgz",
|
||||||
"integrity": "sha512-Sv/SSZZvNmvdSgnzchLn3O9TmfuUMxjDHEseDG/NYU26N5Sd7MUAOnqgKQ5l6/zRgnikSGtwE0KZextwudnVLQ==",
|
"integrity": "sha512-GsdYo2ECYEbVcJs9z6DxrRqRvzlmjXrtF4Ln/XzH9w4Np+9rQQ7hZQ6wI/fCvpkF76cjb2om1la5wQK8JmWddg==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@codemirror/lang-markdown": "6.2.3",
|
"@codemirror/lang-markdown": "6.2.3",
|
||||||
"@codemirror/language-data": "6.3.1",
|
"@codemirror/language-data": "6.3.1",
|
||||||
@@ -31908,9 +31908,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@seafile/seafile-editor": {
|
"@seafile/seafile-editor": {
|
||||||
"version": "1.0.20",
|
"version": "1.0.21",
|
||||||
"resolved": "https://registry.npmjs.org/@seafile/seafile-editor/-/seafile-editor-1.0.20.tgz",
|
"resolved": "https://registry.npmjs.org/@seafile/seafile-editor/-/seafile-editor-1.0.21.tgz",
|
||||||
"integrity": "sha512-Sv/SSZZvNmvdSgnzchLn3O9TmfuUMxjDHEseDG/NYU26N5Sd7MUAOnqgKQ5l6/zRgnikSGtwE0KZextwudnVLQ==",
|
"integrity": "sha512-GsdYo2ECYEbVcJs9z6DxrRqRvzlmjXrtF4Ln/XzH9w4Np+9rQQ7hZQ6wI/fCvpkF76cjb2om1la5wQK8JmWddg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@codemirror/lang-markdown": "6.2.3",
|
"@codemirror/lang-markdown": "6.2.3",
|
||||||
"@codemirror/language-data": "6.3.1",
|
"@codemirror/language-data": "6.3.1",
|
||||||
|
@@ -9,7 +9,7 @@
|
|||||||
"@seafile/resumablejs": "1.1.16",
|
"@seafile/resumablejs": "1.1.16",
|
||||||
"@seafile/sdoc-editor": "0.5.1",
|
"@seafile/sdoc-editor": "0.5.1",
|
||||||
"@seafile/seafile-calendar": "0.0.12",
|
"@seafile/seafile-calendar": "0.0.12",
|
||||||
"@seafile/seafile-editor": "1.0.20",
|
"@seafile/seafile-editor": "1.0.21",
|
||||||
"@uiw/codemirror-extensions-langs": "^4.19.4",
|
"@uiw/codemirror-extensions-langs": "^4.19.4",
|
||||||
"@uiw/react-codemirror": "^4.19.4",
|
"@uiw/react-codemirror": "^4.19.4",
|
||||||
"chart.js": "2.9.4",
|
"chart.js": "2.9.4",
|
||||||
|
@@ -28,28 +28,6 @@ class SdocWikiPageViewer extends React.Component {
|
|||||||
this.scrollRef = React.createRef();
|
this.scrollRef = React.createRef();
|
||||||
}
|
}
|
||||||
|
|
||||||
componentDidMount() {
|
|
||||||
// const eventBus = EventBus.getInstance();
|
|
||||||
// this.unsubscribeLinkClick = eventBus.subscribe(EXTERNAL_EVENTS.ON_LINK_CLICK, this.onLinkClick);
|
|
||||||
}
|
|
||||||
|
|
||||||
componentWillUnmount() {
|
|
||||||
// this.unsubscribeLinkClick();
|
|
||||||
}
|
|
||||||
|
|
||||||
onLinkClick = (event) => {
|
|
||||||
event.preventDefault();
|
|
||||||
event.stopPropagation();
|
|
||||||
let link = '';
|
|
||||||
let target = event.target;
|
|
||||||
while (!target.dataset || !target.dataset.url) {
|
|
||||||
target = target.parentNode;
|
|
||||||
}
|
|
||||||
if (!target) return;
|
|
||||||
link = target.dataset.url;
|
|
||||||
this.props.onLinkClick(link);
|
|
||||||
};
|
|
||||||
|
|
||||||
changeInlineNode = (item) => {
|
changeInlineNode = (item) => {
|
||||||
const { repoID } = this.props;
|
const { repoID } = this.props;
|
||||||
let url, imagePath;
|
let url, imagePath;
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import { EXTERNAL_EVENTS, EventBus, MarkdownViewer } from '@seafile/seafile-editor';
|
import { MarkdownViewer } from '@seafile/seafile-editor';
|
||||||
import { gettext, mediaUrl, serviceURL, sharedToken, slug } from '../../utils/constants';
|
import { gettext, mediaUrl, serviceURL, sharedToken, slug } from '../../utils/constants';
|
||||||
import { Utils } from '../../utils/utils';
|
import { Utils } from '../../utils/utils';
|
||||||
import Loading from '../loading';
|
import Loading from '../loading';
|
||||||
@@ -28,25 +28,7 @@ class SeafileMarkdownViewer extends React.Component {
|
|||||||
this.scrollRef = React.createRef();
|
this.scrollRef = React.createRef();
|
||||||
}
|
}
|
||||||
|
|
||||||
componentDidMount() {
|
onLinkClick = (link) => {
|
||||||
const eventBus = EventBus.getInstance();
|
|
||||||
this.unsubscribeLinkClick = eventBus.subscribe(EXTERNAL_EVENTS.ON_LINK_CLICK, this.onLinkClick);
|
|
||||||
}
|
|
||||||
|
|
||||||
componentWillUnmount() {
|
|
||||||
this.unsubscribeLinkClick();
|
|
||||||
}
|
|
||||||
|
|
||||||
onLinkClick = (event) => {
|
|
||||||
event.preventDefault();
|
|
||||||
event.stopPropagation();
|
|
||||||
let link = '';
|
|
||||||
let target = event.target;
|
|
||||||
while (!target.dataset || !target.dataset.url) {
|
|
||||||
target = target.parentNode;
|
|
||||||
}
|
|
||||||
if (!target) return;
|
|
||||||
link = target.dataset.url;
|
|
||||||
this.props.onLinkClick(link);
|
this.props.onLinkClick(link);
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -105,6 +87,7 @@ class SeafileMarkdownViewer extends React.Component {
|
|||||||
mathJaxSource: `${mediaUrl}js/mathjax/tex-svg.js`,
|
mathJaxSource: `${mediaUrl}js/mathjax/tex-svg.js`,
|
||||||
value: markdownContent,
|
value: markdownContent,
|
||||||
scrollRef: this.scrollRef,
|
scrollRef: this.scrollRef,
|
||||||
|
onLinkClick: this.onLinkClick,
|
||||||
...(isWiki && {beforeRenderCallback: this.modifyValueBeforeRender})
|
...(isWiki && {beforeRenderCallback: this.modifyValueBeforeRender})
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user