Skip to content

Unify Now Playing into one screen; fix mini player tap and list overlap - #143

Merged
sanylax0 merged 1 commit into
mainfrom
claude/unified-now-playing
Sep 10, 2026
Merged

sanylax0 merged 1 commit into
mainfrom
claude/unified-now-playing

Conversation

@ShawnMadadha

Copy link
Copy Markdown
Contributor

What

One Now Playing surface instead of two, and two mini-player bugs fixed.

Unified Now Playing

NowPlayingView's home/sheet split is gone. The home page (vertical pager center) now carries everything the mini-player-expanded sheet had:

  • large artwork tile with the play/pause scale cue
  • title/artist plus the BPM · key · stems meta line
  • live transition visualization (blend graph in flight, preview + countdown otherwise)
  • scrubber
  • ring transport with the skip-budget pill
  • new: a transition-settings chip under the transport opening TransitionSettingsView — the config screen is now reachable from the default screen

The sheet layout and its chips are deleted; the mini player now jumps to the home page instead of presenting a second screen.

Bugs fixed

Mini player tap did nothing. It was an onTapGesture on the Liquid Glass surface, which never fired. The bar is now a real Button with contentShape over the glass shape and .interactive() glass; play/next stay as inner buttons that win taps on their own frames.

Mini player covered the last row in playlist lists. The bar's safeAreaInset was attached outside the NavigationStack, and pushed destinations don't inherit insets added there — so PlaylistDetailView's list scrolled underneath the bar. A shared .miniPlayerDock() modifier now attaches the dock per screen (library root and playlist detail), so each list is inset by the dock's real height.

Verification

  • Device + simulator builds pass.
  • Simulator (iPhone 17 Pro Max, iOS 26): unified screen renders all sections with a staged demo track; transition chip present and labeled.
  • Note: MainPagerView here only swaps NowPlayingView(mode: .home) → NowPlayingView(); the backdrop-height fix stays in Size the pager backdrop to the full-bleed page height #142 (different hunk, merges cleanly in either order).

🤖 Generated with Claude Code

- NowPlayingView loses its home/sheet split: the home page now carries
  everything the expanded sheet had (large artwork, analysis meta line,
  live transition visualization, scrubber) plus a transition-settings
  chip under the transport. The sheet layout is deleted.
- The mini player is a real Button (interactive glass, contentShape over
  the bar) that jumps the pager to Now Playing — the old onTapGesture on
  the glass surface never fired.
- New shared .miniPlayerDock() attaches the bar per screen (library root
  AND pushed playlist detail): a safeAreaInset added outside the
  NavigationStack doesn't reach pushed destinations, which is why the
  bar covered the last row of playlist lists.
- continuityGlass gains an interactive: option for tappable glass.

@sanylax0 sanylax0 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I hate you

@sanylax0
sanylax0 merged commit 98f3eb9 into main Sep 10, 2026
1 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants