@woocommerce/components
Version:
UI components for WooCommerce.
36 lines (35 loc) • 2.14 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Pagination = Pagination;
/**
* External dependencies
*/
const element_1 = require("@wordpress/element");
const clsx_1 = __importDefault(require("clsx"));
/**
* Internal dependencies
*/
const page_arrows_1 = require("./page-arrows");
const page_picker_1 = require("./page-picker");
const page_size_picker_1 = require("./page-size-picker");
function Pagination({ page, onPageChange = () => { }, total, perPage, onPerPageChange = () => { }, showPagePicker = true, showPerPagePicker = true, showPageArrowsLabel = true, className, perPageOptions = page_size_picker_1.DEFAULT_PER_PAGE_OPTIONS, children, }) {
const pageCount = Math.ceil(total / perPage);
if (children && typeof children === 'function') {
return children({
pageCount,
});
}
const classes = (0, clsx_1.default)('woocommerce-pagination', className);
if (pageCount <= 1) {
return ((total > perPageOptions[0] && ((0, element_1.createElement)("div", { className: classes },
(0, element_1.createElement)(page_size_picker_1.PageSizePicker, { currentPage: page, perPage: perPage, setCurrentPage: onPageChange, total: total, setPerPageChange: onPerPageChange, perPageOptions: perPageOptions })))) ||
null);
}
return ((0, element_1.createElement)("div", { className: classes },
(0, element_1.createElement)(page_arrows_1.PageArrows, { currentPage: page, pageCount: pageCount, showPageArrowsLabel: showPageArrowsLabel, setCurrentPage: onPageChange }),
showPagePicker && ((0, element_1.createElement)(page_picker_1.PagePicker, { currentPage: page, pageCount: pageCount, setCurrentPage: onPageChange })),
showPerPagePicker && ((0, element_1.createElement)(page_size_picker_1.PageSizePicker, { currentPage: page, perPage: perPage, setCurrentPage: onPageChange, total: total, setPerPageChange: onPerPageChange, perPageOptions: perPageOptions }))));
}