Skip to content

feat(web): waveform with comment avatars on desktop track tiles - #14717

Merged
dylanjeffers merged 1 commit into
mainfrom
feat/web-track-tile-waveform
Oct 28, 2026
Merged

dylanjeffers merged 1 commit into
mainfrom
feat/web-track-tile-waveform

Conversation

@dylanjeffers

@dylanjeffers dylanjeffers commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Large desktop track tiles get a SoundCloud-style bar waveform between the title and the stats row. Comments with a track timestamp sit on the baseline as avatars.

  • Click the waveform to seek the playing track, or start the tile at that point (same play-then-seek pattern as the comments context). Gated tracks without access fall through to the unlock flow.
  • Hover an avatar for the comment; click opens it highlighted on the track page (?commentId=; the /comments subroute is mobile-only and redirects on desktop).
  • Comments are fetched once per tile, only for tiles with a nonzero comment count that have scrolled near the viewport.
  • useTimestampedComments moves from mobile into @audius/common/api so the Now Playing scrubber and the tile share it.

No node serves audio peaks, so the bar shape is synthesized from the track id with a seeded generator. It is stable per track but not the audio. Real peaks need a backend endpoint.

Flag

track_tile_waveform: code default on in development, off in production. The Optimizely flag exists in Audius Dapp with a Production rule delivering Off, so this ships dark.

Test plan

  • Web + mobile typecheck, lint
  • TrackTile.test.tsx passes
  • Verified on Trending: seek on active and inactive tiles, avatar tooltip and click-through, light and dark

🤖 Generated with Claude Code

Large desktop track tiles get a bar waveform between the title and the
stats row, behind the track_tile_waveform flag (default on in dev, off
in prod). Clicking the waveform seeks the playing track or starts the
tile at that point. Comments with a track timestamp sit on the baseline
as avatars; hover shows the comment, click opens it on the track page.

No node serves audio peaks yet, so the shape is synthesized from the
track id. Comments are fetched once per tile, only for tiles with
comments that have scrolled near the viewport.

The timestamped-comments hook moves from mobile into common so both
the Now Playing scrubber and the web tile share it.

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

changeset-bot Bot commented Oct 27, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 00a1f40

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 b4cc131 into main Oct 28, 2026
18 checks passed
@dylanjeffers
dylanjeffers deleted the feat/web-track-tile-waveform branch October 28, 2026 18:24
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