@infotech/uikit-datagrid
Version:
uikit-datagrid --
63 lines (50 loc) • 1.76 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = _interopRequireDefault(require("react"));
var _recompose = require("recompose");
var _uikitPaginationBar = _interopRequireDefault(require("@infotech/uikit-pagination-bar"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/* Get total count of items from data, or pages, or totalCount */
function calcTotalCount(props) {
if (typeof props.totalCount === "number") {
return props.totalCount;
}
var count = props.pages ? props.pages * props.pageSize : props.data ? props.data.length : 0;
if (count < 0) {
return 0;
}
return count;
}
function PaginationComponent(props) {
var page = props.page,
pageSize = props.pageSize,
onPageChange = props.onPageChange,
onPageSizeChange = props.onPageSizeChange,
showPageSizeOptions = props.showPageSizeOptions,
pageSizeOptions = props.pageSizeOptions,
onRefresh = props.onRefresh,
pending = props.pending,
loading = props.loading;
/* Get totalCount, or product of pages and pageSize, or data.length */
var total = calcTotalCount(props);
return _react.default.createElement(_uikitPaginationBar.default, {
current: page + 1,
total: total,
perPage: pageSize,
pending: pending,
loading: loading,
onChange: function onChange(page) {
return onPageChange(page - 1);
},
onChangePerPage: showPageSizeOptions && onPageSizeChange ? onPageSizeChange : null,
perPageOptions: pageSizeOptions,
onRefresh: onRefresh
});
}
var _default = (0, _recompose.defaultProps)({
PaginationComponent: PaginationComponent
});
exports.default = _default;