mirror of
https://github.com/gosticks/react-bootstrap-table2.git
synced 2026-07-01 14:40:02 +00:00
54 lines
988 B
JavaScript
54 lines
988 B
JavaScript
const getNormalizedPage = (
|
|
page,
|
|
pageStartIndex
|
|
) => {
|
|
const offset = Math.abs(1 - pageStartIndex);
|
|
return page + offset;
|
|
};
|
|
|
|
const endIndex = (
|
|
page,
|
|
sizePerPage,
|
|
pageStartIndex
|
|
) => (getNormalizedPage(page, pageStartIndex) * sizePerPage) - 1;
|
|
|
|
const startIndex = (
|
|
end,
|
|
sizePerPage,
|
|
) => end - (sizePerPage - 1);
|
|
|
|
export const alignPage = (
|
|
data,
|
|
page,
|
|
sizePerPage,
|
|
pageStartIndex
|
|
) => {
|
|
const end = endIndex(page, sizePerPage, pageStartIndex);
|
|
const dataSize = data.length;
|
|
|
|
if (end - 1 > dataSize) {
|
|
return pageStartIndex;
|
|
}
|
|
return page;
|
|
};
|
|
|
|
export const getByCurrPage = (
|
|
data,
|
|
page,
|
|
sizePerPage,
|
|
pageStartIndex
|
|
) => {
|
|
const dataSize = data.length;
|
|
if (!dataSize) return [];
|
|
|
|
const end = endIndex(page, sizePerPage, pageStartIndex);
|
|
const start = startIndex(end, sizePerPage);
|
|
|
|
const result = [];
|
|
for (let i = start; i <= end; i += 1) {
|
|
result.push(data[i]);
|
|
if (i + 1 === dataSize) break;
|
|
}
|
|
return result;
|
|
};
|