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);
+ };
+ }
}
}
},