diff --git a/src/app/feed/page.tsx b/src/app/feed/page.tsx index 7dc2735f..f5b0b264 100644 --- a/src/app/feed/page.tsx +++ b/src/app/feed/page.tsx @@ -5,6 +5,7 @@ import { Header } from "@/components/layout/Header"; import { CreatePostForm } from "@/components/feed/CreatePostForm"; import { FeedSortTabs } from "@/components/feed/FeedSortTabs"; import { FeedList } from "@/components/feed/FeedList"; +import { parsePageParam } from "@/lib/pagination"; import type { Metadata } from "next"; export const metadata: Metadata = { @@ -24,7 +25,7 @@ async function FeedContent({ searchParams }: FeedPageProps) { const resolvedParams = await searchParams; const sort = resolvedParams.sort || "hot"; const tag = resolvedParams.tag || undefined; - const page = Number(resolvedParams.page) || 1; + const page = parsePageParam(resolvedParams.page); const supabase = await createClient(); diff --git a/src/lib/pagination.test.ts b/src/lib/pagination.test.ts index a4aae4a7..5c30c846 100644 --- a/src/lib/pagination.test.ts +++ b/src/lib/pagination.test.ts @@ -12,6 +12,8 @@ describe("parsePageParam", () => { expect(parsePageParam("-1")).toBe(1); expect(parsePageParam("0")).toBe(1); expect(parsePageParam("abc")).toBe(1); + expect(parsePageParam("Infinity")).toBe(1); + expect(parsePageParam("-Infinity")).toBe(1); }); it("truncates fractional page values", () => {