fix: use camelCase for pagination meta after transform
This commit is contained in:
parent
3bbebeb588
commit
47d64d6fe1
5 changed files with 23 additions and 7 deletions
|
|
@ -260,11 +260,26 @@ export class PartyAdapter extends BaseAdapter {
|
|||
* Lists all public parties (explore page)
|
||||
*/
|
||||
async list(params: { page?: number; per?: number } = {}): Promise<PaginatedResponse<Party>> {
|
||||
return this.request<PaginatedResponse<Party>>('/parties', {
|
||||
const response = await this.request<{
|
||||
results: Party[]
|
||||
meta?: {
|
||||
count?: number
|
||||
totalPages?: number
|
||||
perPage?: number
|
||||
}
|
||||
}>('/parties', {
|
||||
method: 'GET',
|
||||
query: params,
|
||||
cacheTTL: 30000 // Cache for 30 seconds
|
||||
})
|
||||
|
||||
return {
|
||||
results: response.results,
|
||||
page: params.page || 1,
|
||||
total: response.meta?.count || 0,
|
||||
totalPages: response.meta?.totalPages || 1,
|
||||
perPage: response.meta?.perPage || 20
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -212,6 +212,7 @@ export class InfiniteScrollResource<T> {
|
|||
|
||||
try {
|
||||
const response = await this.fetcher(nextPage, this.abortController.signal)
|
||||
this.log('API response:', response)
|
||||
|
||||
// Append new items
|
||||
this.items = [...this.items, ...response.results]
|
||||
|
|
|
|||
|
|
@ -102,6 +102,9 @@ export interface PaginatedResponse<T> {
|
|||
/** Number of items per page */
|
||||
perPage?: number
|
||||
|
||||
/** Alternative key for items per page (API might return this) */
|
||||
per?: number
|
||||
|
||||
/** Whether there are more pages available */
|
||||
hasMore?: boolean
|
||||
|
||||
|
|
|
|||
|
|
@ -8,19 +8,16 @@ export const load: PageServerLoad = async ({ url, depends }) => {
|
|||
const pageParam = url.searchParams.get('page')
|
||||
const page = pageParam ? Math.max(1, parseInt(pageParam, 10) || 1) : 1
|
||||
|
||||
console.log('[explore/+page.server.ts] Loading explore page with page:', page)
|
||||
console.log('[explore/+page.server.ts] Full URL:', url.toString())
|
||||
|
||||
try {
|
||||
const response = await partyAdapter.list({ page })
|
||||
console.log('[explore/+page.server.ts] Successfully loaded', response.results.length, 'parties')
|
||||
|
||||
return {
|
||||
items: response.results,
|
||||
page,
|
||||
total: response.total,
|
||||
totalPages: response.totalPages,
|
||||
perPage: response.per || 20
|
||||
perPage: response.perPage || response.per || 20
|
||||
}
|
||||
} catch (e: any) {
|
||||
console.error('[explore/+page.server.ts] Failed to load teams:', {
|
||||
|
|
|
|||
|
|
@ -15,10 +15,10 @@
|
|||
initialPage: data.page || 1,
|
||||
initialTotalPages: data.totalPages,
|
||||
initialTotal: data.total,
|
||||
pageSize: data.perPage || 20,
|
||||
threshold: 300,
|
||||
debounceMs: 200,
|
||||
maxItems: 500 // Limit for performance
|
||||
maxItems: 500, // Limit for performance
|
||||
debug: false // Disable debug logging
|
||||
})
|
||||
|
||||
// Initialize with SSR data on client
|
||||
|
|
|
|||
Loading…
Reference in a new issue