Replace the mobile sidebar with a bottom sheet, grouped by data shape #10
Loading…
Reference in a new issue
No description provided.
Delete branch "feature/mobile-nav"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Shell.css's old 720px media query) with a bottom sheet: a slim top bar, a "Parcourir" trigger docked above the music bar, and a sheet that slides up from the bottom.playlists-type library exists) bookend a Bibliothèques group — the part whose count and contents depend on what the connected Emby server actually returns.getLibraries()already sendscollectionTypeper library (CatalogService.ts) — this PR is the first thing to read it client-side.collectionTypeicons for the sheet (the sidebar has never had any) — small inline SVGs, same convention asPlayer.ts's own icon constants.MusicBar.css's.musicBarno longer positions itself — a new.bottomStackwrapper does) instead of a hardcoded pixel offset, since the bar's own rendered height isn't constant.Context
Follows directly from a round of mockups (compared a bottom tab bar, a hamburger drawer, this bottom sheet, and a polished version of the existing horizontal bar) and feedback on exactly this grouping (Accueil / Bibliothèques / Listes de lecture).
Verification
typecheck/build(client only).client/dist/app.cssto confirm they match what was written.#sidebarNavalone to every.navItem), the grouped rows, and the conditional "Listes de lecture" row were all driven end to end against the realShell.ts/Shell.htmlwith fake library data (no Emby login reachable from this sandbox — the real Shell only mounts after login).screen.widthreflected the requested size,innerWidth/matchMediadid not), so the mobile-width visual check was done by forcing the same CSS rules through an injected override rather than a real ≤720px viewport. Worth an early real-phone check once deployed.Test plan
🤖 Generated with Claude Code