leaderboard: filter-bar polish, stacked headers, scrollable matrix, robust sort#28
Merged
Merged
Conversation
…rollable matrix, robust sort - Filter bar: each label+chips pair is its own flex group so "Metric:" no longer orphans from its buttons when the bar wraps. - Matrix column headers: dataset name and metric label stack on two lines (dataset on top, metric in small gray below) instead of one long line that wraps to 2-3 lines per cell. Each line is whitespace-nowrap, so headers are tight and stable-width. - Home matrix + per-dataset table: vertical scroll inside a max-h-[70vh] container with a sticky thead, so a 120-row table doesn't blow out the page height. - InteractiveTable sort: read data-sort-value live from the DOM on every sort call instead of using a cache captured at init. Fixes sort after the home page's metric toggle (which rewrites sort values) and after filter chips change. setSort now re-runs the search/visibility pass after reordering, so chip-hidden rows stay hidden across sorts. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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
Four small UX fixes on the leaderboard.
1. Filter bar grouping. The
Metric:label was orphaning from its chips when the bar wrapped. Each label+chips pair is now its ownflex-wrapgroup, so a wrap keeps them together.2. Stacked column headers. Dataset name and metric label were one long line that wrapped to 2-3 lines per cell (e.g.
ArguAna / nDCG@10). Now each is its own single-line div — dataset on top, metric below in small gray. Each line iswhitespace-nowrap, so columns are tight and consistent.3. Scrollable matrix. The home matrix and
/datasets/{id}(both ~120 rows) live in amax-h-[70vh] overflow-y-autocontainer with asticky top-0<thead>. The page no longer scrolls hundreds of pixels just to show one table.4. Robust sort.
InteractiveTablenow readsdata-sort-valuelive on each sort (instead of a cache captured at init), so sorting works correctly after the metric toggle rewrites cell sort values and after chip filters change which rows are visible.setSortalso re-runs the visibility pass after reordering, so chip-hidden rows stay hidden.Test Plan
pnpm -F @qg/leaderboard buildclean, 1113 pages.🤖 Generated with Claude Code