UNPKG

@coveord/plasma-mantine

Version:

A Plasma flavoured Mantine theme

55 lines (54 loc) 2.17 kB
"use strict"; 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