diff --git a/web/pw-server/src/routes/matches/index.svelte b/web/pw-server/src/routes/matches/index.svelte index c6eca50..95e653f 100644 --- a/web/pw-server/src/routes/matches/index.svelte +++ b/web/pw-server/src/routes/matches/index.svelte @@ -3,12 +3,22 @@ const PAGE_SIZE = "50"; - export async function load({ fetch }) { + export async function load({ url, fetch }) { try { const apiClient = new ApiClient(fetch); - const matches = await apiClient.get("/api/matches", { + + let query = { count: PAGE_SIZE, - }); + before: url.searchParams.get("before"), + after: url.searchParams.get("after"), + }; + + let matches = await apiClient.get("/api/matches", removeUndefined(query)); + + // TODO: should this be done client-side? + if (query["after"]) { + matches = matches.reverse(); + } return { props: { @@ -22,28 +32,30 @@ }; } } + + function removeUndefined(obj: Record): Record { + Object.keys(obj).forEach((key) => { + if (obj[key] === undefined || obj[key] === null) { + delete obj[key]; + } + }); + return obj; + }