fix(ui): remove broken hint animation and restore card toggle

The ws-check-hint animation clobbered the fadein's forwards fill,
making the checkbox invisible for 0.6s on card-body click — appearing
as a deselect-then-reselect. Remove the hint, the unused role=checkbox
on the card, and restore the original symmetric toggle behavior.
This commit is contained in:
Patrick Buckley
2026-04-08 18:05:41 -07:00
parent e9c141aba5
commit 024a2e98d2
2 changed files with 2 additions and 20 deletions
+2 -13
View File
@@ -3368,30 +3368,19 @@ function renderSavedWorkstreams(items) {
chk.type = "checkbox";
chk.className = "ws-card-check";
chk.checked = !!_wsDeleteSelected[sess.ws_id];
chk.setAttribute("tabindex", "-1");
chk.setAttribute("aria-hidden", "true");
chk.setAttribute("aria-label", "Select " + label + " for deletion");
chk.onclick = function (e) {
e.stopPropagation();
if (chk.checked) _wsDeleteSelected[sess.ws_id] = true;
else delete _wsDeleteSelected[sess.ws_id];
card.classList.toggle("ws-selected", chk.checked);
card.setAttribute("aria-checked", chk.checked ? "true" : "false");
updateWsDeleteBar();
};
card.appendChild(chk);
card.setAttribute("tabindex", "0");
card.setAttribute("role", "checkbox");
card.setAttribute("aria-checked", chk.checked ? "true" : "false");
card.onclick = function (e) {
if (e.target === chk) return;
if (chk.checked) {
chk.classList.add("ws-check-hint");
setTimeout(function () {
chk.classList.remove("ws-check-hint");
}, 600);
return;
}
chk.checked = true;
chk.checked = !chk.checked;
chk.onclick(e);
};
card.onkeydown = function (e) {
-7
View File
@@ -1522,13 +1522,7 @@ audio.media-player {
opacity: 0;
animation: ws-check-fadein 0.2s ease-out forwards;
}
.ws-card-check.ws-check-hint {
outline: 2px solid var(--red);
outline-offset: 2px;
animation: ws-check-pulse 0.6s ease-out;
}
@keyframes ws-check-fadein { to { opacity: 1; } }
@keyframes ws-check-pulse { 0% { transform: scale(1.3); } 100% { transform: scale(1); } }
.dashboard-card.ws-selected {
border-color: var(--red);
background: rgba(248, 113, 113, 0.08);
@@ -1550,7 +1544,6 @@ audio.media-player {
@keyframes ws-bar-slide { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) {
.ws-card-check { animation: none; opacity: 1; }
.ws-card-check.ws-check-hint { animation: none; }
.ws-delete-bar.visible { animation: none; }
}
.ws-delete-bar .ws-delete-count-label { font-size: 12px; color: var(--fg-dim); }