Skip to content

Commit 2e857d2

Browse files
committed
fix: solve tab filtering issues
1 parent b9578c7 commit 2e857d2

2 files changed

Lines changed: 31 additions & 25 deletions

File tree

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,33 @@
11
import { Controller } from "@hotwired/stimulus"
22

3+
function setInactive(btn) {
4+
btn.style.borderColor = "rgba(255,255,255,0.15)"
5+
btn.style.background = "transparent"
6+
btn.style.color = "rgba(255,255,255,0.45)"
7+
}
8+
9+
function setActive(btn) {
10+
btn.style.borderColor = "var(--retro-gold)"
11+
btn.style.background = "rgba(200,155,60,0.15)"
12+
btn.style.color = "var(--retro-gold)"
13+
}
14+
315
export default class extends Controller {
416
filter(event) {
517
const team = event.currentTarget.dataset.team
618
const rows = document.querySelectorAll("[data-champion-row]")
719

8-
// Update button styles
9-
this.element.querySelectorAll("button").forEach(btn => {
10-
btn.classList.remove("bg-kl-gold", "text-kl-bg")
11-
btn.classList.add("bg-white/5", "text-gray-300")
12-
})
13-
event.currentTarget.classList.add("bg-kl-gold", "text-kl-bg")
14-
event.currentTarget.classList.remove("bg-white/5", "text-gray-300")
20+
this.element.querySelectorAll("button").forEach(setInactive)
21+
setActive(event.currentTarget)
1522

16-
if (!team) {
23+
if (team === "") {
1724
rows.forEach(r => r.style.display = "")
1825
return
1926
}
2027

21-
// Filter champion rows by team picks/bans (requires server-side data attr)
2228
rows.forEach(r => {
2329
const teams = r.dataset.teams || ""
24-
r.style.display = teams.includes(team) ? "" : "none"
30+
r.style.display = teams.split(",").includes(team) ? "" : "none"
2531
})
2632
}
2733
}
Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,26 @@
11
import { Controller } from "@hotwired/stimulus"
22

3-
export default class extends Controller {
4-
static classes = ["active"]
3+
function setInactive(btn) {
4+
btn.style.borderColor = "rgba(255,255,255,0.15)"
5+
btn.style.background = "transparent"
6+
btn.style.color = "rgba(255,255,255,0.45)"
7+
}
8+
9+
function setActive(btn) {
10+
btn.style.borderColor = "var(--retro-gold)"
11+
btn.style.background = "rgba(200,155,60,0.15)"
12+
btn.style.color = "var(--retro-gold)"
13+
}
514

15+
export default class extends Controller {
616
filter(event) {
717
const group = event.currentTarget.dataset.tabFilterGroupParam
818

9-
// Toggle button styles
10-
this.element.querySelectorAll("button").forEach(btn => {
11-
btn.classList.remove("bg-kl-gold", "text-kl-bg")
12-
btn.classList.add("bg-white/5", "text-gray-300")
13-
})
14-
event.currentTarget.classList.add("bg-kl-gold", "text-kl-bg")
15-
event.currentTarget.classList.remove("bg-white/5", "text-gray-300")
19+
this.element.querySelectorAll("button").forEach(setInactive)
20+
setActive(event.currentTarget)
1621

17-
// Show/hide groups
1822
document.querySelectorAll("[data-tab-group]").forEach(el => {
19-
if (group === "all" || el.dataset.tabGroup === group) {
20-
el.style.display = ""
21-
} else {
22-
el.style.display = "none"
23-
}
23+
el.style.display = (group === "all" || el.dataset.tabGroup === group) ? "" : "none"
2424
})
2525
}
2626
}

0 commit comments

Comments
 (0)