From 9cad7cd02558d4015adead55388b263efae05f95 Mon Sep 17 00:00:00 2001 From: yosmoc Date: Thu, 24 May 2018 00:08:51 +0200 Subject: [PATCH 1/2] anchorClickHandler is not valid any more linkClickHandler takes care of behaviours when clicking a tag. Currently, both anchorClickHandler and linkClickHandler are registered in a tag. When clicking the ^http link, it opens the link twice. --- browser/components/MarkdownPreview.js | 30 +++------------------------ 1 file changed, 3 insertions(+), 27 deletions(-) diff --git a/browser/components/MarkdownPreview.js b/browser/components/MarkdownPreview.js index ea5f11c0f..25245fa30 100755 --- a/browser/components/MarkdownPreview.js +++ b/browser/components/MarkdownPreview.js @@ -132,7 +132,6 @@ export default class MarkdownPreview extends React.Component { this.mouseUpHandler = (e) => this.handleMouseUp(e) this.DoubleClickHandler = (e) => this.handleDoubleClick(e) this.scrollHandler = _.debounce(this.handleScroll.bind(this), 100, {leading: false, trailing: true}) - this.anchorClickHandler = (e) => this.handlePreviewAnchorClick(e) this.checkboxClickHandler = (e) => this.handleCheckboxClick(e) this.saveAsTextHandler = () => this.handleSaveAsText() this.saveAsMdHandler = () => this.handleSaveAsMd() @@ -153,22 +152,6 @@ export default class MarkdownPreview extends React.Component { }) } - handlePreviewAnchorClick (e) { - e.preventDefault() - e.stopPropagation() - - const anchor = e.target.closest('a') - const href = anchor.getAttribute('href') - if (_.isString(href) && href.match(/^#/)) { - const targetElement = this.refs.root.contentWindow.document.getElementById(href.substring(1, href.length)) - if (targetElement != null) { - this.getWindow().scrollTo(0, targetElement.offsetTop) - } - } else { - shell.openExternal(href) - } - } - handleCheckboxClick (e) { this.props.onCheckboxClick(e) } @@ -390,9 +373,6 @@ export default class MarkdownPreview extends React.Component { } rewriteIframe () { - _.forEach(this.refs.root.contentWindow.document.querySelectorAll('a'), (el) => { - el.removeEventListener('click', this.anchorClickHandler) - }) _.forEach(this.refs.root.contentWindow.document.querySelectorAll('input[type="checkbox"]'), (el) => { el.removeEventListener('click', this.checkboxClickHandler) }) @@ -415,16 +395,12 @@ export default class MarkdownPreview extends React.Component { let renderedHTML = this.markdown.render(value) this.refs.root.contentWindow.document.body.innerHTML = attachmentManagement.fixLocalURLS(renderedHTML, storagePath) - _.forEach(this.refs.root.contentWindow.document.querySelectorAll('a'), (el) => { - this.fixDecodedURI(el) - el.addEventListener('click', this.anchorClickHandler) - }) - _.forEach(this.refs.root.contentWindow.document.querySelectorAll('input[type="checkbox"]'), (el) => { el.addEventListener('click', this.checkboxClickHandler) }) _.forEach(this.refs.root.contentWindow.document.querySelectorAll('a'), (el) => { + this.fixDecodedURI(el) el.addEventListener('click', this.linkClickHandler) }) @@ -475,7 +451,7 @@ export default class MarkdownPreview extends React.Component { el.innerHTML = '' diagram.drawSVG(el, opts) _.forEach(el.querySelectorAll('a'), (el) => { - el.addEventListener('click', this.anchorClickHandler) + el.addEventListener('click', this.linkClickHandler) }) } catch (e) { console.error(e) @@ -491,7 +467,7 @@ export default class MarkdownPreview extends React.Component { el.innerHTML = '' diagram.drawSVG(el, {theme: 'simple'}) _.forEach(el.querySelectorAll('a'), (el) => { - el.addEventListener('click', this.anchorClickHandler) + el.addEventListener('click', this.linkClickHandler) }) } catch (e) { console.error(e) From d399cba4c03fcd8917e164524ac925c0dd430799 Mon Sep 17 00:00:00 2001 From: yosmoc Date: Thu, 24 May 2018 00:24:25 +0200 Subject: [PATCH 2/2] onContextMenu PropType is missing --- browser/components/MarkdownPreview.js | 1 + 1 file changed, 1 insertion(+) diff --git a/browser/components/MarkdownPreview.js b/browser/components/MarkdownPreview.js index 25245fa30..6af8e386d 100755 --- a/browser/components/MarkdownPreview.js +++ b/browser/components/MarkdownPreview.js @@ -574,6 +574,7 @@ MarkdownPreview.propTypes = { onDoubleClick: PropTypes.func, onMouseUp: PropTypes.func, onMouseDown: PropTypes.func, + onContextMenu: PropTypes.func, className: PropTypes.string, value: PropTypes.string, showCopyNotification: PropTypes.bool,