Fix notifications Load More feedback and URL-encode before cursor #154
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
The "Load More" button on the notifications page (
/notifications) appears broken: clicking it seems to just reload the same page. The backend is not broken — API pagination via thebeforecursor works correctly (verified over JSON and HTML, and a third-party client using the API paginates fine).The button is a plain full-page link (
<a href="/notifications?before=...">styled asbtn btn-secondary btn-sm), so clicking it causes a hard navigation: scroll position resets to top and the whole page re-renders. Because the feed is dominated by dozens of near-identical rows (e.g. "retoor sent you a message") with coarse relative timestamps ("1d ago" covers a whole day), and every page starts with the same "Notifications" heading and section labels ("Today", "Yesterday", "This week"), the new page looks exactly like the old one.Secondary hygiene issue: the Load More href ships the cursor with a raw, unencoded
+(the UTC offset):/notifications?before=2026-08-03T15:58:20.244013+00:00. In a query string+decodes to a space; the server happens to parse this correctly today, but the cursor should be percent-encoded (%2B) to be safe.Steps to Reproduce
/notificationsin the web app.<a href="/notifications?before=...">).Expected Behaviour
beforecursor in the href should be URL-encoded.Actual Behaviour
beforecursor is present unencoded with a raw+in the query string:/notifications?before=2026-08-03T15:58:20.244013+00:00.Environment
GET /notifications?before=<cursor>verified working over bothAccept: text/htmlandAccept: application/json; also confirmed working from an external API client (iOS app).Reported by Lensflare via DevPlace.