You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(ui): compare-groups crash with 6+ groups + responsive filter UX (#235)
## Summary
- **Crash fix:** `RUN_SLOTS` extended from 5 to 10 entries (A–J) so URLs
comparing more than 5 groups (e.g. all six EL clients) no longer crash
on `RUN_SLOTS[r.index].label` being undefined. `GroupBuilder` cap raised
from 5 to `RUN_SLOTS.length`.
- **Per-group loading spinners** on the compare-groups builder: each
card now shows a small \"Loading…\" spinner in its header while that
group's config or any of its sampled result fetches are in-flight,
instead of relying solely on the global state.
- **Non-blocking filter updates** on both compare pages: filter URL
writes (search box, regex toggle, chip toggles, gas-bucket buttons, diff
filter) now run inside `useTransition`. Chip clicks and keystrokes paint
immediately while the fan-out re-renders (charts × runs × thousands of
tests) happen as an interruptible transition — rapid clicks cancel
in-flight work instead of queueing 4s hangs per click.
- **Quieter dimension breakdown:** when only 1–2 dimensions are
available, the \"Show more / Show fewer dimensions\" toggle is hidden
entirely (nothing to collapse). Reappears automatically with 3+
dimensions. Applied in both `DimensionInsights` and
`CompareDimensionInsights`.
## Test plan
- [x] Open
`/compare/groups?suite=…&groups=besu:;;erigon:;;ethrex:;;geth:;;nethermind:;;reth:`
— confirm the page renders without throwing on `slot.label` and each
group gets a distinct color (A–F).
- [x] In the group builder, while results are still loading, confirm
each group card shows a small spinner in its header alongside the \"X
runs found\" badge.
- [x] On `/compare?runs=…` and `/compare/groups?…` with thousands of
tests, click a facet chip rapidly several times — the click should feel
instant; older work should be cancelled rather than queued.
- [ ] In the dimension breakdown panel: with a filter narrow enough that
only 1–2 dimensions remain, confirm both are visible and no toggle
button is shown. Loosen the filter so 3+ dimensions appear and confirm
the toggle reappears.
0 commit comments