diff --git a/src/lib/api/adapters/party.adapter.ts b/src/lib/api/adapters/party.adapter.ts index 8fdf8fa8..b22f65f0 100644 --- a/src/lib/api/adapters/party.adapter.ts +++ b/src/lib/api/adapters/party.adapter.ts @@ -260,11 +260,26 @@ export class PartyAdapter extends BaseAdapter { * Lists all public parties (explore page) */ async list(params: { page?: number; per?: number } = {}): Promise> { - return this.request>('/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 + } } /** diff --git a/src/lib/api/adapters/resources/infiniteScroll.resource.svelte.ts b/src/lib/api/adapters/resources/infiniteScroll.resource.svelte.ts index c212aef9..588d40ca 100644 --- a/src/lib/api/adapters/resources/infiniteScroll.resource.svelte.ts +++ b/src/lib/api/adapters/resources/infiniteScroll.resource.svelte.ts @@ -212,6 +212,7 @@ export class InfiniteScrollResource { try { const response = await this.fetcher(nextPage, this.abortController.signal) + this.log('API response:', response) // Append new items this.items = [...this.items, ...response.results] diff --git a/src/lib/api/adapters/types.ts b/src/lib/api/adapters/types.ts index 728b52da..0e80bceb 100644 --- a/src/lib/api/adapters/types.ts +++ b/src/lib/api/adapters/types.ts @@ -102,6 +102,9 @@ export interface PaginatedResponse { /** 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 diff --git a/src/routes/teams/explore/+page.server.ts b/src/routes/teams/explore/+page.server.ts index e790f1b2..e696ca73 100644 --- a/src/routes/teams/explore/+page.server.ts +++ b/src/routes/teams/explore/+page.server.ts @@ -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:', { diff --git a/src/routes/teams/explore/+page.svelte b/src/routes/teams/explore/+page.svelte index a173b1a3..7eafe91a 100644 --- a/src/routes/teams/explore/+page.svelte +++ b/src/routes/teams/explore/+page.svelte @@ -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