Co-authored-by: renee-png <262607627+renee-png@users.noreply.github.com>
This commit is contained in:
gpt-engineer-app[bot]
2026-04-19 17:31:18 +00:00
co-authored by renee-png
parent a5e9acdbf3
commit f8ededeba7
+8 -1
View File
@@ -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));