fix clipboard for the panel

This commit is contained in:
MCHost
2025-06-24 00:04:58 -04:00
parent b7c2fa6d19
commit e3ad40a023
3 changed files with 53 additions and 15 deletions

View File

@ -1011,6 +1011,7 @@ const fileContextMenu = (elDisplay = null) => {
.setLabel('Copy path')
.setClickHandler(() => {
const path = isNoneSelected ? activeConnection.path : selectedFiles[0].dataset.path;
console.log('Clipboard context:', window.location.href, window.top === window ? 'Parent' : 'Iframe');
navigator.clipboard.writeText(path);
setStatus(`Copied path to clipboard`);
})
@ -2318,8 +2319,25 @@ btnShare.addEventListener('click', async() => {
} else if (isMultiSelected)
url = await getZipDownloadUrl(selected.map(el => el.dataset.path), activeConnection.path);
if (url) {
navigator.clipboard.writeText(url);
setStatus(`Copied download link to clipboard`);
try {
await navigator.clipboard.writeText(url);
setStatus(`Copied download link to clipboard`);
} catch (err) {
console.error('Clipboard error:', err);
// Fallback
const textarea = document.createElement('textarea');
textarea.value = url;
document.body.appendChild(textarea);
textarea.select();
try {
document.execCommand('copy');
setStatus(`Copied download link to clipboard (fallback)`);
} catch (fallbackErr) {
console.error('Fallback failed:', fallbackErr);
setStatus(`Failed to copy link. Please copy manually: ${url}`, true);
}
document.body.removeChild(textarea);
}
}
}))
.addAction(action => action.setLabel('Cancel'))