pagination-front-end
Version:
pagination-front-end é uma biblioteca voltada para realização de paginação no front end( pagination-front-end is a front-end paging library)
32 lines (24 loc) • 704 B
text/typescript
export const DEFAULT_PAGE_SIZE = 20
export const DEFAULT_MAX_VISIBLE_PAGES = 10
export const normalizePageSize = (pageSize: number): number =>
Number.isFinite(pageSize) && pageSize > 0 ? Math.floor(pageSize) : 1
export const getTotalItems = (items: unknown[] | null | undefined): number =>
items?.length ?? 0
export const clampCurrentPage = (
currentPage: number,
allPages: number
): number => {
if (allPages <= 0) {
return 1
}
const normalizedPage = Number.isFinite(currentPage)
? Math.floor(currentPage)
: 1
if (normalizedPage < 1) {
return 1
}
if (normalizedPage > allPages) {
return allPages
}
return normalizedPage
}