TV mobile playlist drawer: vertical resize (grow/shrink past old cap)#1089
Draft
TV mobile playlist drawer: vertical resize (grow/shrink past old cap)#1089
Conversation
Replace fixed maxHeight cap with user-height state, bottom drag grip (pointer capture + touch-action none), persisted height, and viewport clamp helpers. Add unit tests for height math; sync i18n for handle label. Co-authored-by: Ryo Lu <me@ryo.lu>
|
The preview deployment for ryos-dev is ready. 🟢 Open Preview | Open Build Logs | Open Application Logs Last updated at: 2026-05-01 11:41:53 CET |
Replace bottom grip UI with a transparent 12px rim on the drawer top; bump default compact height to min(34dvh,236px); new localStorage key v2 so prior v1 caps don't block the new default. Co-authored-by: Ryo Lu <me@ryo.lu>
Co-authored-by: Ryo Lu <me@ryo.lu>
Co-authored-by: Ryo Lu <me@ryo.lu>
Match window mobile bottom resize affordance (larger strip, overlaps outside drawer). motion wrapper uses overflow-visible on compact+touch. Co-authored-by: Ryo Lu <me@ryo.lu>
…r capture The invisible drawer resizer was absolutely positioned at z-20 and could overlap WindowFrame resize handles (z-[60]/50). Moved it into the panel flex layout at z-0 with negative lateral margins matching horizontal inset. Removed setPointerCapture to avoid orphaned captures blocking touch on iOS. Also fixed missing closing </div> around panelOuter (parse error). Co-authored-by: Ryo Lu <me@ryo.lu>
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
Mobile compact playlist drawer was hard-capped with
max-height: min(28dvh, 200px), so users could not make it taller (“resize downward”). This adds explicit pixel height with min/max clamps driven byvisualViewportwhen available, and an invisible top-edge resize hit target (12px strip on the drawer rim, overlapping the window overlap) with pointer capture +touch-action: noneso scrolling does not steal the gesture. No separate visible drag row.Default height is slightly larger:
min(34% viewport, 236px). Persisted height uses keyryos_tv_compact_drawer_height_px_v2so old stored caps do not block the new default.Desktop side-drawer behavior is unchanged. Drawer remains hidden while fullscreen.
Root cause
The bottom-sheet layout enforced a fixed maximum height via CSS only; nothing allowed increasing that cap on touch devices.
Testing
bun run buildbun test tests/test-tv-compact-drawer-height.test.tsFiles touched
src/apps/tv/components/TvVideoDrawer.tsxsrc/apps/tv/utils/compactDrawerHeight.tstests/test-tv-compact-drawer-height.test.tsapps.tv.drawer.resizeHandle)