Made the page paginator more smart.

This commit is contained in:
Abdulmhsen B. A. A.
2024-06-16 16:00:41 +03:00
parent b1d73911a1
commit 43ef77fc27
3 changed files with 67 additions and 41 deletions

View File

@@ -359,6 +359,56 @@ const makeName = (item, asMovie = false) => {
})
}
/**
* Make pagination
*
* @param {number} current
* @param {number} last
* @param {number} delta
*
* @returns {Array}
*/
const makePagination = (current, last, delta = 5) => {
let pagination = []
if (last < 2) {
return pagination
}
const strR = '-'.repeat(9 + `${last}`.length)
const left = current - delta,
right = current + delta + 1;
for (let i = 1; i <= last; i++) {
if (i === 1 || i === last || (i >= left && i < right)) {
if (i === left && i > 2) {
pagination.push({
page: 0,
text: strR,
selected: false,
});
}
pagination.push({
page: i,
text: `Page #${i}`,
selected: i === current
});
if (i === right - 1 && i < last - 1) {
pagination.push({
page: 0,
text: strR,
selected: false,
});
}
}
}
return pagination;
}
export {
ag_set,
ag,
@@ -374,4 +424,5 @@ export {
makeSearchLink,
dEvent,
makeName,
makePagination,
}