From 4e90337f549536ad65c3ec729e560b58617db1a2 Mon Sep 17 00:00:00 2001 From: KoalaTrapLord <265133236+KoalaTrapLord@users.noreply.github.com> Date: Thu, 26 Mar 2026 23:48:27 -0400 Subject: [PATCH] feat: extend card hover preview to all card names in coach UI --- ui/coach.css | 6 +++++- ui/coach.js | 14 ++++++++------ 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/ui/coach.css b/ui/coach.css index 535f096..3cf0e88 100644 --- a/ui/coach.css +++ b/ui/coach.css @@ -1132,7 +1132,11 @@ height: auto; border-radius: 10px; } -td[data-card-name] .coach-card-name { +td[data-card-name] .coach-card-name, +[data-card-name].coach-replacement-chip, +[data-card-name].coach-synergy-chip, +[data-card-name].coach-pill, +[data-card-name].coach-cl-name { cursor: pointer; border-bottom: 1px dashed var(--text-secondary, #888); } diff --git a/ui/coach.js b/ui/coach.js index b177878..04dfa31 100644 --- a/ui/coach.js +++ b/ui/coach.js @@ -63,7 +63,7 @@ } function _attachCardHover(container) { - container.querySelectorAll('td[data-card-name]').forEach(td => { + container.querySelectorAll('[data-card-name]').forEach(td => { td.addEventListener('mouseenter', e => _showCardPreview(td.dataset.cardName, e)); td.addEventListener('mousemove', e => _positionPreview(e)); td.addEventListener('mouseleave', _hideCardPreview); @@ -433,7 +433,7 @@ html += 'Cuts:'; html += '
'; for (const cut of cuts) { - html += '' + escHtml(cut.cardName) + ''; + html += '' + escHtml(cut.cardName) + ''; } html += '
'; } @@ -444,7 +444,7 @@ html += 'Adds:'; html += '
'; for (const add of adds) { - html += '' + escHtml(add.cardName) + ''; + html += '' + escHtml(add.cardName) + ''; } html += '
'; } @@ -457,6 +457,7 @@ html += ''; detailEl.innerHTML = html; + _attachCardHover(detailEl); // Bind buttons detailEl.querySelector('.coach-load-chat-btn')?.addEventListener('click', (e) => { @@ -599,7 +600,7 @@ '' + escHtml(cut.reason) + '' + '
' + (cut.replacementOptions || []).map(r => - '' + escHtml(r) + '' + '' + escHtml(r) + '' ).join('') + '
' + '' + formatImpact(cut.currentImpactScore) + ''; @@ -622,7 +623,7 @@ '' + escHtml(add.reason) + '' + '
' + (add.synergyWith || []).map(s => - '' + escHtml(s) + '' + '' + escHtml(s) + '' ).join('') + '
'; tr.querySelector('.coach-card-name').parentElement.dataset.cardName = add.cardName; @@ -918,7 +919,7 @@ div.innerHTML = '
' + - '' + escHtml(card.name) + '' + + '' + escHtml(card.name) + '' + '' + simPct + '%' + '
' + '
' + @@ -939,6 +940,7 @@ }); cardslikeResults.appendChild(div); + _attachCardHover(div); } } catch (e) { cardslikeResults.innerHTML = '
Error: ' + escHtml(e.message) + '
';