Repository navigation
feat: catalog search and filter sheet with URL state (UX-09) - #213
Merged
Merged
Conversation
- sticky search (umlaut tolerant, title/tags/summary/category, all words) and a filter bottom sheet (category, place, duration, difficulty, tags, favorites, never played, below target) - active filters as removable chips with reset and a result count - filter state in the URL (replace, other params kept); back from a drill restores filter and scroll position - cards with inline diagram thumbnail (lazy, unique svg ids), duration, difficulty and level; groups by category with sticky headings; empty state with "Filter zurücksetzen" - fix: <main> was an overflow container so no sticky bar stuck to the window (also the drill head) - tests (372) Co-Authored-By: Claude Sonnet 5.5 <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
?q=&cat=&tag=&dur=&diff=&place=&fav=1&new=1&low=1): shareable,replaceinstead ofpush(Back leaves the list), other query params are kept, quick successive changes build on each other. Back from a drill restores filter and scroll position (the router waits for the 250 ms page transition before restoring)arrowexists in 40 files), duration, difficulty dots, level stars, tags. Groups by category with sticky headingsBug fix found on the way
<main>hadoverflow: autoalthough the window is what scrolls. That made<main>the sticky container, so no sticky bar inside it ever stuck to the window - including the drill head from UX-06 and the session bar. Nowoverflow: visible(guarded by a test).Numbers
Start chunk 145.2 KB; the list chunk is 18.4 KB (lazy). Tests 338 -> 372, lint 0 errors. Removed the unused
filters/drills.ts.Test plan
npm test,npm run lint,npm run typecheck,npm run build(local)🤖 Generated with Claude Code