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)
|
* Lists all public parties (explore page)
|
||||||
*/
|
*/
|
||||||
async list(params: { page?: number; per?: number } = {}): Promise<PaginatedResponse<Party>> {
|
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',
|
method: 'GET',
|
||||||
query: params,
|
query: params,
|
||||||
cacheTTL: 30000 // Cache for 30 seconds
|
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 {
|
try {
|
||||||
const response = await this.fetcher(nextPage, this.abortController.signal)
|
const response = await this.fetcher(nextPage, this.abortController.signal)
|
||||||
|
this.log('API response:', response)
|
||||||
|
|
||||||
// Append new items
|
// Append new items
|
||||||
this.items = [...this.items, ...response.results]
|
this.items = [...this.items, ...response.results]
|
||||||
|
|
|
||||||
|
|
@ -102,6 +102,9 @@ export interface PaginatedResponse<T> {
|
||||||
/** Number of items per page */
|
/** Number of items per page */
|
||||||
perPage?: number
|
perPage?: number
|
||||||
|
|
||||||
|
/** Alternative key for items per page (API might return this) */
|
||||||
|
per?: number
|
||||||
|
|
||||||
/** Whether there are more pages available */
|
/** Whether there are more pages available */
|
||||||
hasMore?: boolean
|
hasMore?: boolean
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,19 +8,16 @@ export const load: PageServerLoad = async ({ url, depends }) => {
|
||||||
const pageParam = url.searchParams.get('page')
|
const pageParam = url.searchParams.get('page')
|
||||||
const page = pageParam ? Math.max(1, parseInt(pageParam, 10) || 1) : 1
|
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 {
|
try {
|
||||||
const response = await partyAdapter.list({ page })
|
const response = await partyAdapter.list({ page })
|
||||||
console.log('[explore/+page.server.ts] Successfully loaded', response.results.length, 'parties')
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
items: response.results,
|
items: response.results,
|
||||||
page,
|
page,
|
||||||
total: response.total,
|
total: response.total,
|
||||||
totalPages: response.totalPages,
|
totalPages: response.totalPages,
|
||||||
perPage: response.per || 20
|
perPage: response.perPage || response.per || 20
|
||||||
}
|
}
|
||||||
} catch (e: any) {
|
} catch (e: any) {
|
||||||
console.error('[explore/+page.server.ts] Failed to load teams:', {
|
console.error('[explore/+page.server.ts] Failed to load teams:', {
|
||||||
|
|
|
||||||
|
|
@ -15,10 +15,10 @@
|
||||||
initialPage: data.page || 1,
|
initialPage: data.page || 1,
|
||||||
initialTotalPages: data.totalPages,
|
initialTotalPages: data.totalPages,
|
||||||
initialTotal: data.total,
|
initialTotal: data.total,
|
||||||
pageSize: data.perPage || 20,
|
|
||||||
threshold: 300,
|
threshold: 300,
|
||||||
debounceMs: 200,
|
debounceMs: 200,
|
||||||
maxItems: 500 // Limit for performance
|
maxItems: 500, // Limit for performance
|
||||||
|
debug: false // Disable debug logging
|
||||||
})
|
})
|
||||||
|
|
||||||
// Initialize with SSR data on client
|
// Initialize with SSR data on client
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue