/**
 * 使用 execCommand 复制（兼容非安全上下文，如 http + 局域网 IP）。
 */
function copyWithExecCommand(text: string): boolean {
    const textarea = document.createElement('textarea')
    textarea.value = text
    textarea.setAttribute('readonly', 'readonly')
    textarea.style.position = 'fixed'
    textarea.style.left = '-9999px'
    textarea.style.top = '0'
    textarea.style.opacity = '0'
    document.body.appendChild(textarea)
    textarea.focus()
    textarea.select()
    textarea.setSelectionRange(0, text.length)
    let ok = false
    try {
        ok = document.execCommand('copy')
    } finally {
        document.body.removeChild(textarea)
    }
    return ok
}

/**
 * 复制文本到剪贴板。优先 Clipboard API；不可用时或非安全上下文用 execCommand 兜底。
 */
export async function copyTextToClipboard(text: string): Promise<boolean> {
    if (typeof window !== 'undefined' && window.isSecureContext && navigator.clipboard?.writeText) {
        try {
            await navigator.clipboard.writeText(text)
            return true
        } catch {
            // 权限失败等继续走兜底
        }
    }
    return copyWithExecCommand(text)
}
