fix(queue-panel): let Up Next fill the available height#157
Merged
Conversation
The Up Next scroll container carried a `max-h-[55vh]` cap that truncated the rendered virtualized list to ~55% of the viewport, leaving a visible empty band between the last row and the volume controls at the bottom of the panel — most obvious on 1080p+ displays where the panel had hundreds of px of unused vertical space. Worse, the parent content wrapper also had `overflow-y-auto` so the nested cap was producing two independent scrollers: the inner one maxed at 55vh, then scrolling further engaged the outer one, with no visual cue that the user had crossed from one to the other. Restructure the inner column as a proper flex stack: - Content wrapper switches from `overflow-y-auto` to `flex flex-col min-h-0` so its children flow as flex items. - Radio banner + Now Playing section pin to their natural height via `shrink-0`. - Up Next section becomes `flex-1 flex flex-col min-h-0`, and its inner virtualizer scroll element trades the `max-h-[55vh]` cap for `flex-1 min-h-0 overflow-y-auto` so it consumes everything left over after the eyebrow. Net result: one scroller, fills the panel down to the volume strip, no truncation regardless of viewport size.
📝 WalkthroughWalkthroughQueuePanel restructure ses conteneurs pour utiliser le dimensionnement flexible ( ChangesRestructuration du layout flexible du QueuePanel
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Suggested labels
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
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
User flagged the play queue panel showing a wide empty band between the last visible row and the volume strip — most visible on 1080p+ displays. Root cause: the virtualized Up Next scroll container at QueuePanel.tsx:397 carried a
max-h-[55vh]cap that truncated the list to ~55 % of the viewport regardless of how much vertical room the panel actually had.Compounding issue: the parent content wrapper at line 215 also had
overflow-y-auto, so the nested cap was producing two independent scrollers — the inner one maxed at 55vh, then continued scrolling engaged the outer one, with no visual cue that the user had crossed from one to the other.Fix
Restructured the inner column as a proper flex stack:
overflow-y-autotoflex flex-col min-h-0so its children flow as flex items.shrink-0.flex-1 flex flex-col min-h-0, and its inner virtualizer scroll element trades themax-h-[55vh]cap forflex-1 min-h-0 overflow-y-autoso it consumes everything left over after the eyebrow.One scroller, fills the panel down to the volume strip, no truncation regardless of viewport size.
Test plan
bun run typecheckcleanbun run lintcleanSummary by CodeRabbit