(label, deadlineSecs)
| 359 | let _verdictDeadline = 0; |
| 360 | |
| 361 | function showAwaiting(label, deadlineSecs) { |
| 362 | $awaitingLabel.innerHTML = label; // caller controls HTML, we trust it |
| 363 | $awaitingWrap.style.display = ""; |
| 364 | _verdictDeadline = performance.now() + deadlineSecs * 1000; |
| 365 | tickAwaitingTimer(); |
| 366 | if (_verdictTimerId) clearInterval(_verdictTimerId); |
| 367 | _verdictTimerId = setInterval(tickAwaitingTimer, 250); |
| 368 | } |
| 369 | function tickAwaitingTimer() { |
| 370 | const remaining = Math.max(0, Math.ceil((_verdictDeadline - performance.now()) / 1000)); |
| 371 | $awaitingTimer.textContent = `auto-skip in ${remaining}s`; |
no test coverage detected