@@ -164,6 +164,32 @@ export function usePaginatedQuery<Query extends PaginatedQueryReference>(
164164 args : PaginatedQueryArgs < Query > | "skip" ,
165165 options : { initialNumItems : number } ,
166166) : UsePaginatedQueryReturnType < Query > {
167+ const { user } = usePaginatedQueryInternal ( query , args , options ) ;
168+ return user ;
169+ }
170+
171+ /** @internal */
172+ export const includePage = Symbol ( "includePageKeys" ) ;
173+
174+ /** @internal */
175+ export const page = Symbol ( "page" ) ;
176+
177+ /**
178+ * @internal
179+ */
180+ export function usePaginatedQueryInternal <
181+ Query extends PaginatedQueryReference ,
182+ > (
183+ query : Query ,
184+ args : PaginatedQueryArgs < Query > | "skip" ,
185+ options : {
186+ initialNumItems : number ;
187+ [ includePage ] ?: boolean ;
188+ } ,
189+ ) : {
190+ user : UsePaginatedQueryReturnType < Query > ;
191+ internal : { state : UsePaginatedQueryState } ;
192+ } {
167193 if (
168194 typeof options ?. initialNumItems !== "number" ||
169195 options . initialNumItems < 0
@@ -234,6 +260,7 @@ export function usePaginatedQuery<Query extends PaginatedQueryReference>(
234260
235261 const resultsObject = useQueries ( currState . queries ) ;
236262
263+ const isIncludingPageKeys = options [ includePage ] ?? false ;
237264 const [ results , maybeLastResult ] : [
238265 Value [ ] ,
239266 undefined | PaginationResult < Value > ,
@@ -303,7 +330,14 @@ export function usePaginatedQuery<Query extends PaginatedQueryReference>(
303330 // page and return 'LoadingMore' while the page is splitting.
304331 return [ allItems , undefined ] ;
305332 }
306- allItems . push ( ...currResult . page ) ;
333+ allItems . push (
334+ ...( isIncludingPageKeys
335+ ? currResult . page . map ( ( i : any ) => ( {
336+ ...i ,
337+ [ page ] : pageKey . toString ( ) ,
338+ } ) )
339+ : currResult . page ) ,
340+ ) ;
307341 }
308342 return [ allItems , currResult ] ;
309343 } , [
@@ -313,6 +347,7 @@ export function usePaginatedQuery<Query extends PaginatedQueryReference>(
313347 options . initialNumItems ,
314348 createInitialState ,
315349 logger ,
350+ isIncludingPageKeys ,
316351 ] ) ;
317352
318353 const statusObject = useMemo ( ( ) => {
@@ -379,8 +414,11 @@ export function usePaginatedQuery<Query extends PaginatedQueryReference>(
379414 } , [ maybeLastResult , currState . nextPageKey ] ) ;
380415
381416 return {
382- results,
383- ...statusObject ,
417+ user : {
418+ results,
419+ ...statusObject ,
420+ } ,
421+ internal : { state : currState } ,
384422 } ;
385423}
386424
0 commit comments