fix(settings): fallback clipboard copy for http dev environments
navigator.clipboard.writeText() requires a secure context (HTTPS) and silently fails on http://. Add an execCommand fallback so the API key copy button works on non-secure dev instances. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -89,7 +89,20 @@ async function revokeApiKey(id: number) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function copyApiKey() {
|
async function copyApiKey() {
|
||||||
await navigator.clipboard.writeText(newKeyValue.value);
|
try {
|
||||||
|
await navigator.clipboard.writeText(newKeyValue.value);
|
||||||
|
} catch {
|
||||||
|
// Fallback for http (non-secure) contexts where clipboard API is unavailable
|
||||||
|
const ta = document.createElement('textarea');
|
||||||
|
ta.value = newKeyValue.value;
|
||||||
|
ta.style.position = 'fixed';
|
||||||
|
ta.style.opacity = '0';
|
||||||
|
document.body.appendChild(ta);
|
||||||
|
ta.focus();
|
||||||
|
ta.select();
|
||||||
|
document.execCommand('copy');
|
||||||
|
document.body.removeChild(ta);
|
||||||
|
}
|
||||||
apiKeyCopied.value = true;
|
apiKeyCopied.value = true;
|
||||||
setTimeout(() => { apiKeyCopied.value = false; }, 2000);
|
setTimeout(() => { apiKeyCopied.value = false; }, 2000);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user