From 84e53c8576fcb8085d83cda2720011c0a2a85e4b Mon Sep 17 00:00:00 2001 From: Brendan Kellam Date: Mon, 22 Dec 2025 16:57:20 -0500 Subject: [PATCH] fix(web): Fix repo pagination (#689) --- CHANGELOG.md | 1 + packages/web/src/app/[domain]/repos/page.tsx | 13 +++++++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9bde4903..0897c85a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed - Bake Sourcebot version into code rather than relying on build arg. [#680](https://github.com/sourcebot-dev/sourcebot/pull/680) +- Fix issue with `/repos` page pagination. [#689](https://github.com/sourcebot-dev/sourcebot/pull/689) ## [4.10.4] - 2025-12-18 diff --git a/packages/web/src/app/[domain]/repos/page.tsx b/packages/web/src/app/[domain]/repos/page.tsx index 476228dd..4a576168 100644 --- a/packages/web/src/app/[domain]/repos/page.tsx +++ b/packages/web/src/app/[domain]/repos/page.tsx @@ -6,6 +6,8 @@ import { ReposTable } from "./components/reposTable"; import { RepoIndexingJobStatus, Prisma } from "@sourcebot/db"; import z from "zod"; +const numberSchema = z.coerce.number().int().positive(); + interface ReposPageProps { searchParams: Promise<{ page?: string; @@ -17,12 +19,15 @@ interface ReposPageProps { }>; } -export default async function ReposPage({ searchParams }: ReposPageProps) { - const params = await searchParams; +export default async function ReposPage(props: ReposPageProps) { + const params = await props.searchParams; + + console.log('asdf:'); + console.log(z.coerce.number().int().safeParse(params.page).error); // Parse pagination parameters with defaults - const page = z.number().int().positive().safeParse(params.page).data ?? 1; - const pageSize = z.number().int().positive().safeParse(params.pageSize).data ?? 5; + const page = numberSchema.safeParse(params.page).data ?? 1; + const pageSize = numberSchema.safeParse(params.pageSize).data ?? 5; // Parse filter parameters const search = z.string().optional().safeParse(params.search).data ?? '';