Take Control of Pagination
Blog post from Convex
The Convex framework offers robust pagination capabilities, allowing developers to display large datasets incrementally using infinite-scroll pagination with functions like .paginate(opts) and usePaginatedQuery(). While these tools handle complex edge cases seamlessly, they have limitations in scenarios involving joins, unions, or virtual infinite scroll views, and don't manage unloading unnecessary pages or handling rapidly growing pages out-of-the-box. To address these limitations, Convex introduces the getPage function, a versatile helper that allows for more granular control over pagination by supporting various arguments such as start and end positions, index order, and limits. This function empowers developers to implement advanced pagination patterns, such as fetching pages with joins, jumping to specific data points, and scrolling in either direction. The flexibility of getPage enables developers to optimize queries and manage dynamic data updates more effectively, although it requires more manual intervention compared to Convex's built-in pagination tools.