[Glitch] Replace `execCommand` for copying text with the modern `clipboard` API

Port fb6d7ed475 to glitch-soc

Signed-off-by: Claire <claire.github-309c@sitedethib.com>
pull/2889/head
Renaud Chaput 2024-10-21 09:08:18 +02:00 committed by Claire
parent 8103e69b17
commit d304540ebc
1 changed files with 14 additions and 21 deletions

View File

@ -327,31 +327,24 @@ Rails.delegate(document, '.input-copy button', 'click', ({ target }) => {
if (!input) return;
const oldReadOnly = input.readOnly;
input.readOnly = false;
input.focus();
input.select();
input.setSelectionRange(0, input.value.length);
try {
if (document.execCommand('copy')) {
input.blur();
navigator.clipboard
.writeText(input.value)
.then(() => {
const parent = target.parentElement;
if (!parent) return;
parent.classList.add('copied');
if (parent) {
parent.classList.add('copied');
setTimeout(() => {
parent.classList.remove('copied');
}, 700);
}
} catch (err) {
console.error(err);
}
setTimeout(() => {
parent.classList.remove('copied');
}, 700);
}
input.readOnly = oldReadOnly;
return true;
})
.catch((error: unknown) => {
console.error(error);
});
});
const toggleSidebar = () => {