Skip to content

fix: scroll restoration, autoplay resume, and track-list memoization (#131 #134 #161) - #377

Open
nekwasar wants to merge 1 commit into
AudioBitsStellar:mainfrom
nekwasar:feat/fix-131-132-134-161
Open

fix: scroll restoration, autoplay resume, and track-list memoization (#131 #134 #161)#377
nekwasar wants to merge 1 commit into
AudioBitsStellar:mainfrom
nekwasar:feat/fix-131-132-134-161

Conversation

@nekwasar

Copy link
Copy Markdown

Closes #131, Closes #134, Closes #161

Implements the remaining acceptance-criteria gaps for these three issues on top of the existing fixes already on main:

#131 — Scroll restoration

  • Clear the saved position on a fresh navigation so a back button never resurrects a stale scroll position; only back/forward (popstate) restores.
  • Added the hook to the marketplace (explore) page, which was still missing it.

#134 — Autoplay policy

  • Resume the Web Audio AudioContext on the exact user gesture that unblocks autoplay (a suspended context only starts after a user interaction, so the resume must happen inside the click/keydown handler).
  • Gate the "click to play" banner to once per session via sessionStorage, so repeated rejected autoplay attempts don't keep re-showing it.

#161 — Re-renders

  • Memoize the virtualized TrackList row and stabilize the per-track play callback so list re-renders no longer cascade into every visible row.

Verification

  • tsc --noEmit passes (excluding pre-existing upstream failures: missing next-env.d.ts PNG declarations and a missing TransactionTable component).
  • vitest passes for the affected suites: useScrollRestoration (4), PlaybackContext (45), PlayerAudioFeatures (7).
  • eslint clean on all touched files.

…udioBitsStellar#131 AudioBitsStellar#134 AudioBitsStellar#161)

- AudioBitsStellar#131: clear saved scroll position on fresh navigation (only restore on
  back/forward); add scroll restoration to the marketplace (explore) page
- AudioBitsStellar#134: resume the AudioContext on the user gesture that unblocks autoplay;
  gate the 'click to play' banner to once per session
- AudioBitsStellar#161: memoize virtualized TrackList rows and stabilize the play callback
  so list re-renders do not cascade into every visible row
@vercel

vercel Bot commented Aug 29, 2026

Copy link
Copy Markdown

Someone is attempting to deploy a commit to the akatenvictor's projects Team on Vercel.

A member of the Team first needs to authorize it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant