Skip to content

feat(mobile): comment markers and bubbles on the Now Playing scrubber - #14702

Merged
dylanjeffers merged 1 commit into
mainfrom
design/now-playing-comments
Oct 22, 2026
Merged

dylanjeffers merged 1 commit into
mainfrom
design/now-playing-comments

Conversation

@dylanjeffers

Copy link
Copy Markdown
Contributor

Phase 2 of the redesign spec, the SoundCloud-style piece: timestamped comments show up in the player as playback reaches them, without opening the comments drawer.

What it does

  • Each timestamped comment is a 4px accent dot above the scrubber rail at its position.
  • When playback reaches a comment, it appears as a pill under the scrubber for six seconds: avatar, name, first line of the comment. If several comments share a second the most-reacted one wins. Seeking shows the comment at the new position too, and the pill stays while paused.
  • Tapping the pill opens the comment drawer with that comment highlighted at the top.
  • Behind now_playing_comments, default on in code (same pattern as track_rows), so RC picks it up on merge; the remote flag is the kill switch.

How

  • useTimestampedComments: useTrackComments with the timestamp sort, one page of 50, enabled only while the drawer is open (the list query has gcTime: 0), filtered to comments with a timestamp.
  • CommentBubble: zero-height in the layout, the pill floats in the 40px gap above the controls. Position is polled from TrackPlayer.getProgress() twice a second while the drawer is open and playing, plus the redux seek.
  • Slider gets a markers prop (0 to 1 fractions) threaded through Scrubber.
  • Nothing changes with the flag off.

Tested on the iOS 26.5 simulator (1.5.190 Release build with this bundle swapped in, signed in) on a track with five timestamped comments: markers at the right positions, the bubble at 0:08 and 0:28, tap opens the drawer on that comment, seek updates the bubble. Mobile tsc and eslint clean. Not tested: Android, long-form content at non-1x playback rate (the bubble follows the native position, so it should be correct), VoiceOver.

Not in this PR: the comment count next to the comments button, the artwork-tinted player background, and the web play bar ticks from the same spec section.

🤖 Generated with Claude Code

Timestamped comments show up in the player without opening the drawer, the
way SoundCloud does it. Each one is a dot above the scrubber rail, and when
playback reaches it the comment appears as a pill under the scrubber for
six seconds: avatar, name, first line. Tapping the pill opens the comment
drawer with that comment highlighted.

Behind now_playing_comments (default on). Comments load with the timestamp
sort, one page of 50, only while the drawer is open. Position is polled
from the native player twice a second while playing.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@changeset-bot

changeset-bot Bot commented Oct 22, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 8761a2b

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@dylanjeffers
dylanjeffers merged commit c273cdd into main Oct 22, 2026
18 checks passed
@dylanjeffers
dylanjeffers deleted the design/now-playing-comments branch October 22, 2026 21:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant