Remove unused clipboard functions

This commit is contained in:
b1rdmania
2025-12-29 13:10:47 +00:00
parent a2b03c447f
commit cbb808b968
-68
View File
@@ -671,74 +671,6 @@ class MotifApp {
this.status.textContent = message;
}
private cleanTitleForShare(title: string): string {
return (title || '')
.replace(/\.mid$/i, '')
.replace(/_/g, ' ')
.replace(/\s+/g, ' ')
.trim()
.slice(0, 200);
}
private async copyToClipboard(text: string): Promise<void> {
// Try modern clipboard API first
if (navigator.clipboard?.writeText) {
try {
await navigator.clipboard.writeText(text);
return;
} catch {
// Fall through to textarea method
}
}
// Fallback for iOS Safari and older browsers
const ta = document.createElement('textarea');
ta.value = text;
ta.style.position = 'fixed';
ta.style.top = '0';
ta.style.left = '0';
ta.style.width = '2em';
ta.style.height = '2em';
ta.style.padding = '0';
ta.style.border = 'none';
ta.style.outline = 'none';
ta.style.boxShadow = 'none';
ta.style.background = 'transparent';
ta.style.fontSize = '16px'; // Prevent zoom on iOS
ta.setAttribute('readonly', '');
document.body.appendChild(ta);
// iOS needs special handling
const isiOS = /ipad|iphone|ipod/i.test(navigator.userAgent);
if (isiOS) {
ta.contentEditable = 'true';
ta.readOnly = false;
const range = document.createRange();
range.selectNodeContents(ta);
const sel = window.getSelection();
if (sel) {
sel.removeAllRanges();
sel.addRange(range);
}
ta.setSelectionRange(0, 999999);
} else {
ta.select();
}
let success = false;
try {
success = document.execCommand('copy');
} catch {
// ignore
}
document.body.removeChild(ta);
if (!success) {
throw new Error('Copy failed');
}
}
private handleCopyLink(): void {
if (!this.hasGenerated) return;
const result = this.searchResults[this.selectedResultIndex];