@tableus/ui-bootstrap5
Version:
A Bootstrap 5 UI for tableus.
39 lines • 2.29 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.PageSelect = void 0;
const react_1 = __importDefault(require("react"));
const react_bootstrap_1 = require("react-bootstrap");
function PageSelect({ paginationMethods: { getCanPreviousPage, nextPage, previousPage, setPageIndex, }, paginationState: { pageIndex, pageCount, total }, }) {
if (pageCount === undefined)
return null;
let sliderMin = pageIndex - 2;
let sliderMax = pageIndex + 2;
if (sliderMin < 0)
sliderMin = 0;
if (sliderMax > pageCount - 1)
sliderMax = pageCount - 1;
const slider = [];
for (let i = sliderMin; i <= sliderMax; i++) {
slider.push(i);
}
// const canNextPage = getCanNextPage(); broken atm
const canNextPage = pageIndex < pageCount - 1;
return (react_1.default.createElement("div", null,
react_1.default.createElement(react_bootstrap_1.Pagination, null,
react_1.default.createElement(react_bootstrap_1.Pagination.Prev, { disabled: !getCanPreviousPage(), onClick: previousPage }),
sliderMin > 0 && (react_1.default.createElement(react_bootstrap_1.Pagination.Item, { onClick: () => setPageIndex(0) }, 1)),
sliderMin > 1 && react_1.default.createElement(react_bootstrap_1.Pagination.Ellipsis, null),
slider.map((i) => (react_1.default.createElement(react_bootstrap_1.Pagination.Item, { active: i == pageIndex, key: i, onClick: () => setPageIndex(i) }, i + 1))),
sliderMax < pageCount - 2 && react_1.default.createElement(react_bootstrap_1.Pagination.Ellipsis, null),
sliderMax < pageCount - 1 && (react_1.default.createElement(react_bootstrap_1.Pagination.Item, { onClick: () => setPageIndex(pageCount - 1) }, pageCount)),
react_1.default.createElement(react_bootstrap_1.Pagination.Next, { disabled: !canNextPage, onClick: nextPage })),
total !== undefined && (react_1.default.createElement("span", null,
total,
" ",
total === 1 ? "Eintrag" : "Einträge"))));
}
exports.PageSelect = PageSelect;
//# sourceMappingURL=PageSelect.js.map
;