Fix pagination totals for zero counts
Some checks failed
linter / quality (push) Has been cancelled
tests / ci (push) Has been cancelled
tests / ui (push) Has been cancelled

This commit is contained in:
Codex Agent
2026-01-23 17:33:18 +01:00
parent 7dd8bc4c91
commit db90b9af2e
2 changed files with 21 additions and 4 deletions

View File

@@ -877,13 +877,18 @@ async function safeJson(response: Response): Promise<JsonValue | null> {
}
}
function buildPagination(payload: JsonValue | null, defaultCount: number): PaginationMeta {
export function buildPagination(payload: JsonValue | null, defaultCount: number): PaginationMeta {
const meta = (payload?.meta as Partial<PaginationMeta>) ?? {};
const data = payload && typeof payload === 'object' ? (payload as { data?: unknown }).data : undefined;
const fallbackTotal = Array.isArray(data) ? data.length : defaultCount ?? 0;
const perPage = Number(meta.per_page ?? payload?.per_page ?? defaultCount ?? 0);
const total = Number(meta.total ?? payload?.total ?? fallbackTotal);
return {
current_page: Number(meta.current_page ?? payload?.current_page ?? 1),
last_page: Number(meta.last_page ?? payload?.last_page ?? 1),
per_page: Number(meta.per_page ?? payload?.per_page ?? defaultCount ?? 0) || defaultCount || 0,
total: Number(meta.total ?? payload?.total ?? defaultCount ?? 0) || defaultCount || 0,
per_page: Number.isFinite(perPage) ? perPage : defaultCount ?? 0,
total: Number.isFinite(total) ? total : defaultCount ?? 0,
};
}