From a5e9acdbf32f33852fc512f0765a3230daf6a607 Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Sun, 19 Apr 2026 17:31:07 +0000 Subject: [PATCH 1/4] Changes Co-authored-by: renee-png <262607627+renee-png@users.noreply.github.com> --- src/routes/cases.index.tsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/routes/cases.index.tsx b/src/routes/cases.index.tsx index 423c392..6099ea6 100644 --- a/src/routes/cases.index.tsx +++ b/src/routes/cases.index.tsx @@ -44,6 +44,8 @@ function CasesList() { const [assignAttorney, setAssignAttorney] = useState(""); const [assignClient, setAssignClient] = useState(""); const [busy, setBusy] = useState(false); + const [page, setPage] = useState(1); + const PAGE_SIZE = 150; const load = async () => { const { data: caseRows } = await supabase From f8ededeba763753cec454674a4a4c89b233e2d3a Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Sun, 19 Apr 2026 17:31:18 +0000 Subject: [PATCH 2/4] Changes Co-authored-by: renee-png <262607627+renee-png@users.noreply.github.com> --- src/routes/cases.index.tsx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/routes/cases.index.tsx b/src/routes/cases.index.tsx index 6099ea6..5eb5c82 100644 --- a/src/routes/cases.index.tsx +++ b/src/routes/cases.index.tsx @@ -159,9 +159,16 @@ function CasesList() { if (await setArchived("cases", id, archived)) load(); }; + // Pagination — reset when filters/view change. + useEffect(() => { setPage(1); }, [view, q, statusFilter, sortKey, sortDir]); + const totalPages = Math.max(1, Math.ceil(sorted.length / PAGE_SIZE)); + const currentPage = Math.min(page, totalPages); + const pageStart = (currentPage - 1) * PAGE_SIZE; + const paged = useMemo(() => sorted.slice(pageStart, pageStart + PAGE_SIZE), [sorted, pageStart]); + // Selection helpers — clear when switching views. useEffect(() => { setSelected(new Set()); }, [view]); - const visibleIds = useMemo(() => sorted.map((c) => c.id), [sorted]); + const visibleIds = useMemo(() => paged.map((c) => c.id), [paged]); const allSelected = visibleIds.length > 0 && visibleIds.every((id) => selected.has(id)); const someSelected = selected.size > 0 && !allSelected; const toggleAll = () => setSelected(allSelected ? new Set() : new Set(visibleIds)); From 5e37939864622be15feea087637f68f9271f4fff Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Sun, 19 Apr 2026 17:31:27 +0000 Subject: [PATCH 3/4] Changes Co-authored-by: renee-png <262607627+renee-png@users.noreply.github.com> --- src/routes/cases.index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/cases.index.tsx b/src/routes/cases.index.tsx index 5eb5c82..a277fe0 100644 --- a/src/routes/cases.index.tsx +++ b/src/routes/cases.index.tsx @@ -382,7 +382,7 @@ function CasesList() { {view === "archived" ? "No archived cases." : "No cases."} )} - {sorted.map((c) => ( + {paged.map((c) => ( Date: Sun, 19 Apr 2026 17:31:40 +0000 Subject: [PATCH 4/4] Changes Co-authored-by: renee-png <262607627+renee-png@users.noreply.github.com> --- src/routes/cases.index.tsx | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/routes/cases.index.tsx b/src/routes/cases.index.tsx index a277fe0..83b2713 100644 --- a/src/routes/cases.index.tsx +++ b/src/routes/cases.index.tsx @@ -431,6 +431,23 @@ function CasesList() { + + {sorted.length > 0 && ( +
+
+ Showing {pageStart + 1}–{Math.min(pageStart + PAGE_SIZE, sorted.length)} of {sorted.length} +
+
+ + Page {currentPage} of {totalPages} + +
+
+ )} ); }