@vlsergey/react-bootstrap-pagetable
Version:
Complex solution to work with pageable data, including sorting, filtering, actions, changing displayed columns, etc.
22 lines (21 loc) • 1.19 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var react_1 = tslib_1.__importStar(require("react"));
var ColumnHeaderRowWithFilter_1 = tslib_1.__importDefault(require("./ColumnHeaderRowWithFilter"));
var withFilterable = function (Child) {
return function WithFilterable(_a) {
var columnHeaderRow = _a.columnHeaderRow, itemModel = _a.itemModel, etcProps = tslib_1.__rest(_a, ["columnHeaderRow", "itemModel"]);
var tableFilterable = react_1.useMemo(function () {
return itemModel.fields.some(function (_a) {
var renderFilterCell = _a.renderFilterCell;
return !!renderFilterCell;
});
}, [itemModel]);
if (!tableFilterable || !!columnHeaderRow) {
return react_1.default.createElement(Child, tslib_1.__assign({}, etcProps, { columnHeaderRow: columnHeaderRow, itemModel: itemModel }));
}
return react_1.default.createElement(Child, tslib_1.__assign({}, etcProps, { columnHeaderRow: ColumnHeaderRowWithFilter_1.default, itemModel: itemModel }));
};
};
exports.default = withFilterable;
;