Problem/Motivation
The current cursor implementation simply decodes a base64 value into an entity uuid. This causes a couple of issues since a critical feature of the cursor is that you can continue to paginate even if the node that you grabbed the cursor from ceases to exist (or is modified), so effectively the cursor details the "value" it's sorted by.
Steps to reproduce
Proposed resolution
The cursor needs to encode the chosen sorting configuration as well as the sorting value. The current implementation also uses the entity id as tie-breaker so this should still be implemented and stored in the cursor.
It's not a requirement that cursors keep working when the sort order changes, although the scenario should be handled gracefully (for example the Shopify API causes an internal server error).
Comments
Comment #2
kingdutchhttps://github.com/goalgorilla/open_social/pull/2183
Comment #3
kingdutch