Ajout de tooltips aux boutons de copie

This commit is contained in:
2024-09-10 14:08:22 +02:00
parent 0a6ad1589a
commit 2002c73d1b
3 changed files with 30 additions and 63 deletions

View File

@@ -1,6 +1,7 @@
<script>
import { beforeUpdate, afterUpdate, createEventDispatcher} from 'svelte';
import { copyToClipboard } from './lib/clipboard.js';
import {Tooltip} from 'bootstrap';
export let message;
export let container;
@@ -43,7 +44,17 @@
// Trouvez le bon élément parent pour accéder au texte à copier
const copyButton = isCopyButton ? target : target.parentNode;
codeToCopy = copyButton.parentNode.nextElementSibling.innerText;
copyToClipboard(codeToCopy);
copyToClipboard(codeToCopy).then(() => {
let tooltip = new Tooltip(copyButton);
tooltip.setContent({ '.tooltip-inner': 'Code copié!' });
tooltip.show();
// Destroy tooltip after 2 seconds
setTimeout(() => {
tooltip.dispose();
}, 2000);
});
event.stopPropagation();
}
@@ -75,10 +86,23 @@
break;
}
}
function handleCopy() {
function handleCopy(event) {
const btn = event.currentTarget;
event.stopPropagation();
copyToClipboard(message.content)
.then(() => alert('Text copied successfully!'))
.catch(err => alert(`Failed to copy text: ${err.message}`));
.then(() => {
let tooltip = new Tooltip(btn);
tooltip.setContent({ '.tooltip-inner': 'Message copié!' });
tooltip.show();
// Destroy tooltip after 2 seconds
setTimeout(() => {
tooltip.dispose();
}, 2000);
})
.catch(err => console.log(`Failed to copy clipboard: ${err.message}`));
}
</script>