add fallback to all copy function

This commit is contained in:
Gabriel Pastori 2023-11-30 11:59:10 -03:00
parent 2369b925f7
commit 1db00b79bd
8 changed files with 36 additions and 31 deletions

View File

@ -90,6 +90,7 @@
<script>
import { useAppStore } from "@/store/app";
import statusMapper from "@/helpers/mappers/status";
import copyToClipboard from "@/helpers/copyToClipboard";
import instanceController from "@/services/instanceController";
export default {
@ -105,7 +106,9 @@ export default {
methods: {
copyApikey() {
if (this.copied) return;
navigator.clipboard.writeText(this.instance.instance.apikey);
copyToClipboard(this.instance.instance.apikey);
this.copied = true;
setTimeout(() => {
this.copied = false;

View File

@ -82,7 +82,7 @@
<script>
import instanceController from "@/services/instanceController";
import copyToClipboard from "@/helpers/copyToClipboard";
export default {
name: "MyChats",
props: {
@ -113,12 +113,7 @@ export default {
copy(group) {
if (this.copied.includes(group.id)) return;
const el = document.createElement("textarea");
el.value = group.id;
document.body.appendChild(el);
el.select();
document.execCommand("copy");
document.body.removeChild(el);
copyToClipboard(group.id);
this.copied.push(group.id);
setTimeout(() => {

View File

@ -98,7 +98,7 @@
<script>
import instanceController from "@/services/instanceController";
import copyToClipboard from "@/helpers/copyToClipboard";
export default {
name: "MyChats",
props: {
@ -129,12 +129,7 @@ export default {
copy(group) {
if (this.copied.includes(group.id)) return;
const el = document.createElement("textarea");
el.value = group.id;
document.body.appendChild(el);
el.select();
document.execCommand("copy");
document.body.removeChild(el);
copyToClipboard(group.id);
this.copied.push(group.id);
setTimeout(() => {

View File

@ -96,7 +96,7 @@
<script>
import instanceController from "@/services/instanceController";
import GroupModal from "../../modal/GroupModal.vue";
import copyToClipboard from "@/helpers/copyToClipboard";
export default {
name: "MyGroups",
@ -127,12 +127,7 @@ export default {
copy(group) {
if (this.copied.includes(group.id)) return;
const el = document.createElement("textarea");
el.value = group.id;
document.body.appendChild(el);
el.select();
document.execCommand("copy");
document.body.removeChild(el);
copyToClipboard(group.id);
this.copied.push(group.id);
setTimeout(() => {

View File

@ -78,7 +78,7 @@
<script>
import { useAppStore } from "@/store/app";
import copyToClipboard from "@/helpers/copyToClipboard";
export default {
name: "SettingsModal",
data: () => ({
@ -94,7 +94,8 @@ export default {
this.dialog = true;
},
copyValue(key) {
navigator.clipboard.writeText(this[key]);
copyToClipboard(this[key]);
this.copy[key] = true;
setTimeout(() => {
this.copy[key] = false;

View File

@ -28,6 +28,8 @@
</template>
<script>
import copyToClipboard from "@/helpers/copyToClipboard";
export default {
name: "SettingsModal",
data: () => ({
@ -39,9 +41,9 @@ export default {
methods: {
copy() {
if (this.copied) return;
if (!navigator.clipboard)
return alert("Seu navegador não suporta a função de copiar texto.");
navigator.clipboard.writeText(this.key);
copyToClipboard(this.key);
this.copied = true;
setTimeout(() => {
this.copied = false;

View File

@ -44,6 +44,7 @@
</template>
<script>
import copyToClipboard from "@/helpers/copyToClipboard";
export default {
name: "SettingsModal",
data: () => ({
@ -54,15 +55,13 @@ export default {
methods: {
copy() {
if (this.copied) return;
if (!navigator.clipboard)
return alert("Seu navegador não suporta a função de copiar texto.");
const url = new URL(window.location.href);
const connection = JSON.stringify(this.connection);
const base64 = btoa(connection);
url.searchParams.set("connection", base64);
navigator.clipboard.writeText(url.href);
copyToClipboard(url.href);
this.copied = true;
setTimeout(() => {
this.copied = false;

View File

@ -0,0 +1,15 @@
export default (value) => {
if (navigator.clipboard) {
navigator.clipboard.writeText(value);
} else {
const el = document.createElement("textarea");
el.value = value;
el.setAttribute("readonly", "");
el.style.position = "absolute";
el.style.left = "-9999px";
document.body.appendChild(el);
el.select();
document.execCommand("copy");
document.body.removeChild(el);
}
}