From b10b0e573d76909fb884bcd95649263c7c4f7117 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Wed, 6 Sep 2017 11:29:55 +0100 Subject: [PATCH] i18n and change message depending on success of copy Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- src/components/views/messages/TextualBody.js | 10 +++++++--- src/i18n/strings/en_EN.json | 2 ++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/components/views/messages/TextualBody.js b/src/components/views/messages/TextualBody.js index a0fa61ccca..d7d858e0c4 100644 --- a/src/components/views/messages/TextualBody.js +++ b/src/components/views/messages/TextualBody.js @@ -73,12 +73,16 @@ module.exports = React.createClass({ textArea.value = text; document.body.appendChild(textArea); textArea.select(); + + let successful; try { - const successful = document.execCommand('copy'); + successful = document.execCommand('copy'); } catch (err) { console.log('Unable to copy'); } + document.body.removeChild(textArea); + return successful; }, componentDidMount: function() { @@ -119,7 +123,7 @@ module.exports = React.createClass({ for (let i = 0; i < buttons.length; i++) { buttons[i].onclick = (e) => { const copyCode = buttons[i].parentNode.getElementsByTagName("code")[0]; - this.copyToClipboard(copyCode.textContent); + const successful = this.copyToClipboard(copyCode.textContent); const GenericTextContextMenu = sdk.getComponent('context_menus.GenericTextContextMenu'); const buttonRect = e.target.getBoundingClientRect(); @@ -131,7 +135,7 @@ module.exports = React.createClass({ chevronOffset: 10, left: x, top: y, - message: "Copied!", + message: successful ? _t('Copied!') : _t('Failed to copy'), }); e.target.onmouseout = close; }; diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index 8c0f3c8db7..de0b8e9ebb 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -620,6 +620,8 @@ "Encrypt room": "Encrypt room", "There are no visible files in this room": "There are no visible files in this room", "Room": "Room", + "Copied!": "Copied!", + "Failed to copy": "Failed to copy", "Connectivity to the server has been lost.": "Connectivity to the server has been lost.", "Sent messages will be stored until your connection has returned.": "Sent messages will be stored until your connection has returned.", "Auto-complete": "Auto-complete",