@vlsergey/react-bootstrap-pagetable
Version:
Complex solution to work with pageable data, including sorting, filtering, actions, changing displayed columns, etc.
24 lines (23 loc) • 1.39 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var react_1 = tslib_1.__importDefault(require("react"));
var strToSort_1 = tslib_1.__importDefault(require("./sortable/strToSort"));
var withFetchArgsInState = function (Child) {
return function WithFetchArgsInState(_a) {
var _b = _a.defaultPage, defaultPage = _b === void 0 ? 0 : _b, _c = _a.defaultSize, defaultSize = _c === void 0 ? 10 : _c, defaultSort = _a.defaultSort, onFetchArgsChange = _a.onFetchArgsChange, etcProps = tslib_1.__rest(_a, ["defaultPage", "defaultSize", "defaultSort", "onFetchArgsChange"]);
var _d = tslib_1.__read(react_1.default.useState(function () { return ({
page: defaultPage,
size: defaultSize,
sort: strToSort_1.default(defaultSort),
}); }), 2), fetchArgs = _d[0], setFetchArgs = _d[1];
var handleFetchArgsChange = react_1.default.useCallback(function (fetchArgs) {
setFetchArgs(fetchArgs);
if (onFetchArgsChange) {
return onFetchArgsChange(fetchArgs);
}
}, [onFetchArgsChange, setFetchArgs]);
return react_1.default.createElement(Child, tslib_1.__assign({}, etcProps, { fetchArgs: fetchArgs, onFetchArgsChange: handleFetchArgsChange }));
};
};
exports.default = withFetchArgsInState;
;