fix(ui): compare-groups crash with 6+ groups + responsive filter UX#235
Merged
Conversation
…ners Extends the RUN_SLOTS palette from 5 to 10 (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. Bumps the GroupBuilder cap from 5 to RUN_SLOTS.length. Adds a per-group loading flag — true while that group's config or any of its sampled result fetches are in-flight — and renders a small spinner in each GroupCard header so users get feedback that data is loading for that specific group rather than only seeing a global state.
Filter URL updates on the compare and compare-groups pages 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 successive clicks cancel in-flight work instead of queueing 4s hangs per click. Dimension breakdown skips the preview/toggle entirely when there are only 1–2 dimensions in total: nothing is hidden, so "Show more / Show fewer dimensions" would be pure noise. Toggle reappears automatically when 3+ dimensions are available.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
RUN_SLOTSextended from 5 to 10 entries (A–J) so URLs comparing more than 5 groups (e.g. all six EL clients) no longer crash onRUN_SLOTS[r.index].labelbeing undefined.GroupBuildercap raised from 5 toRUN_SLOTS.length.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.DimensionInsightsandCompareDimensionInsights.Test plan
/compare/groups?suite=…&groups=besu:;;erigon:;;ethrex:;;geth:;;nethermind:;;reth:— confirm the page renders without throwing onslot.labeland each group gets a distinct color (A–F)./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.