A dame.is & pds.dad production bsky38.com

Land the leaderboard's next page on the leaderboard, and give it a way back #69

Merged dame.is
targeting main
Merged opened by and assigned to dame.is
targeting main

"Load more nominees" is a link to ?cursor=, which is a real navigation, and a navigation scrolls to the top of the document. That is the wrong top. The standings sit below the masthead, the standfirst and the stats, so a reader who had scrolled to the foot of the list to reach the control was thrown back to the hero, several screens above a list that had silently changed under them. Both links carry #leaderboard now and the section has the id to match, so a page opens on its own first row. No script and no scroll handler: the hash is the platform's answer to this, and it survives a reload and a shared URL, which a noscroll flag plus a manual scroll would not.

Paging forward was also a one-way door. ?cursor= replaces the rows rather than appending to them, so this is page two rather than more of page one, and the only route home was the browser's own back button on a URL that survives a reload. A reader could sit on page four reloading and never see rank 1 again. "Back to the top 38" appears from the second page on, and the load knows which page it is on because the cursor it returns is the next one and says nothing about the current: onFirstPage is decided on the server, so the control is right in the SSR pass rather than appearing at hydration.

Co-Authored-By: Claude Opus 5 noreply@anthropic.com

This pull request has no versions submitted yet.