From f9dece0743b43296848225d86833c3f61c12ee1f Mon Sep 17 00:00:00 2001 From: Philip Allgaier Date: Thu, 10 Dec 2020 15:55:57 +0100 Subject: [PATCH] Add copy YAML (automation & script) fallback without `navigator.clipboard` (#7900) --- src/common/util/copy-clipboard.ts | 16 ++++++++++------ .../config/automation/ha-automation-editor.ts | 3 ++- src/panels/config/script/ha-script-editor.ts | 3 ++- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/common/util/copy-clipboard.ts b/src/common/util/copy-clipboard.ts index 9d7e6885fa..3c89e40982 100644 --- a/src/common/util/copy-clipboard.ts +++ b/src/common/util/copy-clipboard.ts @@ -1,8 +1,12 @@ export const copyToClipboard = (str) => { - const el = document.createElement("textarea"); - el.value = str; - document.body.appendChild(el); - el.select(); - document.execCommand("copy"); - document.body.removeChild(el); + if (navigator.clipboard) { + navigator.clipboard.writeText(str); + } else { + const el = document.createElement("textarea"); + el.value = str; + document.body.appendChild(el); + el.select(); + document.execCommand("copy"); + document.body.removeChild(el); + } }; diff --git a/src/panels/config/automation/ha-automation-editor.ts b/src/panels/config/automation/ha-automation-editor.ts index 229f472085..fed4eb04a5 100644 --- a/src/panels/config/automation/ha-automation-editor.ts +++ b/src/panels/config/automation/ha-automation-editor.ts @@ -32,6 +32,7 @@ import "../../../components/ha-svg-icon"; import "../../../components/ha-yaml-editor"; import { showToast } from "../../../util/toast"; import type { HaYamlEditor } from "../../../components/ha-yaml-editor"; +import { copyToClipboard } from "../../../common/util/copy-clipboard"; import { AutomationConfig, AutomationEntity, @@ -396,7 +397,7 @@ export class HaAutomationEditor extends KeyboardShortcutMixin(LitElement) { private async _copyYaml() { if (this._editor?.yaml) { - navigator.clipboard.writeText(this._editor.yaml); + copyToClipboard(this._editor.yaml); } } diff --git a/src/panels/config/script/ha-script-editor.ts b/src/panels/config/script/ha-script-editor.ts index 1ed2095ef8..8683d5d31f 100644 --- a/src/panels/config/script/ha-script-editor.ts +++ b/src/panels/config/script/ha-script-editor.ts @@ -35,6 +35,7 @@ import "../../../components/ha-icon-input"; import "../../../components/ha-svg-icon"; import "../../../components/ha-yaml-editor"; import type { HaYamlEditor } from "../../../components/ha-yaml-editor"; +import { copyToClipboard } from "../../../common/util/copy-clipboard"; import { Action, deleteScript, @@ -545,7 +546,7 @@ export class HaScriptEditor extends KeyboardShortcutMixin(LitElement) { private async _copyYaml() { if (this._editor?.yaml) { - navigator.clipboard.writeText(this._editor.yaml); + copyToClipboard(this._editor.yaml); } }