image-tagger/module/utils/pagination.mjs

13 lines
407 B
JavaScript

export function paginate(data, page, pageSize) {
const pageStart = pageSize * Math.max(0, page - 1);
const pageEnd = pageSize * page;
const pageData = data.slice(pageStart, pageEnd);
const partialPage = (data.length % pageSize) !== 0;
const total = Math.floor(data.length / pageSize) + (partialPage ? 1 : 0);
return {
page: pageData,
total,
prev: page > 1,
next: pageEnd < data.length,
};
};