TripleSpeederT
Convex Community2y ago
3 replies
TripleSpeeder

How can i map/extend the results of a paginatedQuery?

I'm running a paginated query on a lookup table that returns objects with reference to the actual document. How can i do this? Below is the query i tried to use, but when calling loadMore i get this error:
 InvalidCursor: Tried to run a query starting from a cursor, but it looks like this cursor is from a different query.


Relevant part from the query:
// get user. If no userId is provided, use currently logged-in user
    const user = feedUserId
      ? await db.get(feedUserId)
      : await getCurrentUser(ctx);

    const personalFeedItemsPage = await db
      .query("personalFeed")
      .withIndex("byUserId", (q) =>
        q.eq("userId", user?._id || ("" as Id<"users">)),
      )
      .paginate(paginationOpts);

    // map results from personalFeedItems to actual feedItems
    const itemsPage = pruneNull(
      await asyncMap(personalFeedItemsPage.page, (personalFeedItem) =>
        db.get(personalFeedItem.feedItemId),
      ),
    );

    return {
      ...personalFeedItemsPage,
      page: itemsPage,
    };


I'm assuming the problem is that I'm returning a page of Doc<"feedItem"> instead of `Doc<"PersonalFeedItem">... What would be a better approach here?
Was this page helpful?