UNPKG

braid-design-system

Version:
19 lines (14 loc) 526 B
export const maxPages = 7; export const paginate = ({ page, total }: { page: number; total: number }) => { const half = (maxPages - 1) / 2; const smallerHalf = Math.floor(half); const largerHalf = Math.ceil(half); const pageCount = Math.min(maxPages, total); let minPage = page - smallerHalf; if (page - smallerHalf <= 1) { minPage = 1; } else if (page + largerHalf >= total) { minPage = Math.max(1, total - maxPages + 1); } return Array.from(Array(pageCount).keys()).map((p) => p + minPage); };