diff --git a/src/HtmlUtils.js b/src/HtmlUtils.js index e597d011b9..59717b0459 100644 --- a/src/HtmlUtils.js +++ b/src/HtmlUtils.js @@ -365,11 +365,11 @@ export function bodyToHtml(content, highlights, opts) { } function addCodeCopyButton(safeBody) { - var el = document.createElement("div"); + const el = document.createElement("div"); el.innerHTML = safeBody; - var codeBlocks = Array.from(el.getElementsByTagName("pre")); + const codeBlocks = Array.from(el.getElementsByTagName("pre")); codeBlocks.forEach(p => { - var button = document.createElement("span"); + const button = document.createElement("span"); button.className = "mx_EventTile_copyButton"; p.appendChild(button); }); diff --git a/src/components/views/messages/TextualBody.js b/src/components/views/messages/TextualBody.js index fe4a66b55f..8265ed5010 100644 --- a/src/components/views/messages/TextualBody.js +++ b/src/components/views/messages/TextualBody.js @@ -95,17 +95,12 @@ module.exports = React.createClass({ } const buttons = ReactDOM.findDOMNode(this).getElementsByClassName("mx_EventTile_copyButton"); if (buttons.length > 0) { - // Do this asynchronously: parsing code takes time and we don't - // need to block the DOM update on it. - setTimeout(() => { - if (this._unmounted) return; - for (let i = 0; i < buttons.length; i++) { - buttons[i].onclick = (e) => { - const copyCode = buttons[i].parentNode.getElementsByTagName("code")[0]; - this.copyToClipboard(copyCode.textContent); - }; - } - }, 10); + for (let i = 0; i < buttons.length; i++) { + buttons[i].onclick = (e) => { + const copyCode = buttons[i].parentNode.getElementsByTagName("code")[0]; + this.copyToClipboard(copyCode.textContent); + }; + } } } },