@coveord/plasma-mantine
Version:
A Plasma flavoured Mantine theme
55 lines (54 loc) • 2.17 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "TablePerPage", {
enumerable: true,
get: function() {
return TablePerPage;
}
});
var _jsxruntime = require("react/jsx-runtime");
var _core = require("@mantine/core");
var _react = require("react");
var _TableContext = require("../TableContext");
var TablePerPage = function(param) {
var _param_label = param.label, label = _param_label === void 0 ? 'Results per page' : _param_label, _param_values = param.values, values = _param_values === void 0 ? [
25,
50,
100
] : _param_values, onPerPageChange = param.onPerPageChange;
var _useTableContext = (0, _TableContext.useTableContext)(), store = _useTableContext.store, table = _useTableContext.table;
var choices = (0, _react.useMemo)(function() {
return values.map(function(value) {
return value.toString();
});
}, [
values
]);
var updatePerPage = function(newPerPage) {
onPerPageChange === null || onPerPageChange === void 0 ? void 0 : onPerPageChange(Number(newPerPage));
store.setPagination({
pageIndex: 0,
pageSize: parseInt(newPerPage, 10)
});
};
var _store_state_pagination_pageSize_toString, _ref;
return table.getPageCount() > 0 ? /*#__PURE__*/ (0, _jsxruntime.jsxs)(_core.Group, {
gap: "sm",
children: [
/*#__PURE__*/ (0, _jsxruntime.jsx)(_core.Text, {
fw: 500,
children: label
}),
/*#__PURE__*/ (0, _jsxruntime.jsx)(_core.SegmentedControl, {
value: (_ref = (_store_state_pagination_pageSize_toString = store.state.pagination.pageSize.toString()) !== null && _store_state_pagination_pageSize_toString !== void 0 ? _store_state_pagination_pageSize_toString : choices[1]) !== null && _ref !== void 0 ? _ref : choices[0],
onChange: updatePerPage,
data: choices,
size: "sm"
})
]
}) : null;
};
TablePerPage.DEFAULT_SIZE = 50;
//# sourceMappingURL=TablePerPage.js.map