feat(settings): refine genres preference drawer UX - #2775
Conversation
Summary of ChangesHello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request refines the user experience for managing genre preferences in the settings drawer. It introduces a clearer distinction between loved and hated genres, improves the layout of the genre catalog, and ensures robust state management and persistence for these settings. The changes include updated UI components, improved error handling, and corrected data mapping to ensure genre preferences are correctly saved and retrieved. Highlights
Ignored Files
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize the Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counterproductive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here. Footnotes
|
|
|
Overall Grade |
Security Reliability Complexity Hygiene Coverage |
Code Review Summary
| Analyzer | Status | Updated (UTC) | Details |
|---|---|---|---|
| JavaScript | Aug 24, 2026 2:19p.m. | Review ↗ | |
| Code coverage | Aug 24, 2026 2:19p.m. | Review ↗ |
Code Coverage Summary
| Language | Line Coverage (Overall) |
|---|---|
| Aggregate | 69.3% |
| Javascript | 69.3% |
➟ Additional coverage metrics may have been reported. See full coverage report ↗
Important
AI Review is run only on demand for your team. We're only showing results of static analysis review right now. To trigger AI Review, comment @deepsourcebot review on this thread.
There was a problem hiding this comment.
Code Review
This pull request refactors the user settings for genres, transitioning from a single array of favorite genres to separate categories for 'loved' and 'hated' genres. This involves updates to schemas, queries, stores, filters, and tests, alongside a redesigned settings UI featuring a new GenresDrawer component. The review feedback identifies several critical runtime safety issues, such as potential TypeErrors from unsafe observable property access, potential RangeErrors from negative array lengths when calculating empty slots, and a Svelte 5 compatibility issue when passing non-iterable objects to {#each} loops. Additionally, a style guide violation was noted regarding a missing .ts extension on a relative import.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
8837869 to
c402da7
Compare
d6ed106 to
637bdc2
Compare
c402da7 to
9a07bd0
Compare
9a07bd0 to
ae5badf
Compare
The slot grid and drawer only replace the tag list when the genre-picker
preview flag is on, so everyone else keeps the existing picker.
- Add GenresDrawer with SvelteSet selection, limit enforcement and
discard-changes confirmation
- Add GenreSlots: a slot grid capped at the 92px tile size, scaling down on
narrow viewports
- Keep the old ToggleTag picker as GenreTags for the flag-off path, gated on
FeatureFlag.GenrePicker from Genres.svelte
- Map genres to `{ loved }` instead of a flat array, off browsing.genres.favorites
- Fix null-safety: `browsing?.genres?.favorites` (was `browsing?.genres.favorites`,
crashed when the API returns `genres: null`)
- Update ANONYMOUS_USER, mock data, filter constants and spec to the new shape
Closes #2757
ae5badf to
886c962
Compare
seferturan
left a comment
There was a problem hiding this comment.
Some fixups:
- Removed the disliked ones for now; easy to add back when we actually start using them.
- Added a feature flag for this:
- Settings row on mobile size is not exactly the best.
- We really need better icons for the genres 😅
##Screenshots
Summary
gap-micro) to match the settings block header rhythmPUT /settingson saveCloses #2757
Test plan
🤖 Generated with Claude Code