(btn, text)
| 879 | } |
| 880 | |
| 881 | function copyServerDetails(btn, text) { |
| 882 | navigator.clipboard.writeText(text).then(() => { |
| 883 | const original = btn.textContent; |
| 884 | btn.textContent = 'Copied!'; |
| 885 | btn.classList.add('text-emerald-600', 'dark:text-emerald-400'); |
| 886 | setTimeout(() => { |
| 887 | btn.textContent = original; |
| 888 | btn.classList.remove('text-emerald-600', 'dark:text-emerald-400'); |
| 889 | }, 1500); |
| 890 | }).catch(() => { |
| 891 | showToast('Failed to copy', 'error'); |
| 892 | }); |
| 893 | } |
| 894 | |
| 895 | // ─── Top Results (post-test ranking) ───────────────────────────────────────── |
| 896 |
no test coverage detected