fix: clear pending icon timeout on rapid heartbeat re-click
Generic: Project CI / Lint & Validate (pull_request) Successful in 15s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 33s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 5s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Universal: PR Check / Branch Policy (pull_request) Failing after 2s
Universal: PR Check / Secret Scan (pull_request) Successful in 9s
Universal: PR Check / Validate PR (pull_request) Failing after 6s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 48s
Generic: Repo Health / Access control (pull_request) Successful in 2s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 13s
Generic: Repo Health / Site Health (pull_request) Has been skipped
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Successful in 2s
Universal: Build & Release / Build & Release Pipeline (pull_request) Successful in 37s
Generic: Project CI / Tests (pull_request) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.2) (pull_request) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.3) (pull_request) Has been cancelled
Joomla: Extension CI / PHPStan Analysis (pull_request) Has been cancelled
Joomla: Extension CI / Build RC Pre-Release (pull_request) Has been cancelled
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
Generic: Repo Health / Scripts governance (pull_request) Has been cancelled
Generic: Repo Health / Repository health (pull_request) Has been cancelled
Generic: Repo Health / Report: Scripts Governance (pull_request) Has been cancelled
Generic: Repo Health / Report: Repository Health (pull_request) Has been cancelled
Universal: Workflow Sync Trigger / Sync workflows to live repos (pull_request) Failing after 40m20s

Prevents spinner color bleed and mid-flight icon reset when
user clicks the heartbeat button again before the 3s revert.

Claude-Session: https://claude.ai/code/session_01Jo2JpjCwfHAh2HHRSjczKq
This commit is contained in:
2026-06-28 14:52:22 -05:00
parent 8496b66db2
commit f1345b0010
@@ -112,6 +112,7 @@ document.addEventListener('DOMContentLoaded', function () {
// Heartbeat + PIN send button
var hbBtn = document.getElementById('mokosuiteclient-btn-heartbeat-pin');
var hbIconTimeout = null;
if (hbBtn) {
hbBtn.addEventListener('click', function () {
var btn = this;
@@ -119,8 +120,9 @@ document.addEventListener('DOMContentLoaded', function () {
var token = btn.dataset.token;
var icon = btn.querySelector('span');
if (hbIconTimeout) { clearTimeout(hbIconTimeout); hbIconTimeout = null; }
btn.disabled = true;
if (icon) icon.className = 'icon-spinner icon-spin';
if (icon) { icon.className = 'icon-spinner icon-spin'; icon.style.color = ''; }
var fd = new FormData();
fd.append(token, '1');
@@ -148,8 +150,9 @@ document.addEventListener('DOMContentLoaded', function () {
})
.finally(function () {
btn.disabled = false;
setTimeout(function () {
hbIconTimeout = setTimeout(function () {
if (icon) { icon.className = 'icon-upload'; icon.style.color = ''; }
hbIconTimeout = null;
}, 3000);
});
});