UNPKG

@vnmfify/core

Version:

```shell npm i @vnmfify/core -S ```

40 lines (38 loc) 923 B
import { ItemType } from "./pagination.shared"; export function makePages(count) { var range = (start, end) => { var length = end - start + 1; return Array.from({ length }, (_, i) => start + i); }; return range(1, count).map(page => ({ page, type: ItemType.Page })); } export function usePagination(options) { var { current = 1, limit = 10, total = 60 } = options !== null && options !== void 0 ? options : {}; var count = Math.ceil(total / limit); var hasPrevious = current > 1; var hasNext = current < count; var pageItems = makePages(count); var items = [{ page: Number.MIN_SAFE_INTEGER, type: ItemType.Previous }, ...pageItems, { page: Number.MAX_SAFE_INTEGER, type: ItemType.Next }]; return { hasPrevious, hasNext, count, items }; } //# sourceMappingURL=pagination.hooks.js.map