Fix pagination totals for zero counts
This commit is contained in:
@@ -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,
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user