UNPKG

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)

39 lines (31 loc) 944 B
import { IndiceCalculationResult } from '../types' import { normalizePageSize } from './normalize' const buildPageRange = (startPage: number, endPage: number): number[] => { if (endPage < startPage) { return [] } const pages: number[] = [] pages.length = endPage - startPage + 1 for (let index = 0; index < pages.length; index += 1) { pages[index] = startPage + index } return pages } const indiceCalculation = ( pageSize: number, allItems: number, currentPage: number, startPage: number, endPage: number ): IndiceCalculationResult => { const safePageSize = normalizePageSize(pageSize) const startIndex = (currentPage - 1) * safePageSize const endIndex = allItems <= 0 ? -1 : Math.min(startIndex + safePageSize - 1, allItems - 1) return { pages: buildPageRange(startPage, endPage), startIndex, endIndex, } } export default indiceCalculation