@vlsergey/react-bootstrap-pagetable
Version:
Complex solution to work with pageable data, including sorting, filtering, actions, changing displayed columns, etc.
20 lines (19 loc) • 1.01 kB
JavaScript
import { __assign, __rest } from "tslib";
import React, { useMemo } from 'react';
import ColumnHeaderRowWithFilter from './ColumnHeaderRowWithFilter';
var withFilterable = function (Child) {
return function WithFilterable(_a) {
var columnHeaderRow = _a.columnHeaderRow, itemModel = _a.itemModel, etcProps = __rest(_a, ["columnHeaderRow", "itemModel"]);
var tableFilterable = useMemo(function () {
return itemModel.fields.some(function (_a) {
var renderFilterCell = _a.renderFilterCell;
return !!renderFilterCell;
});
}, [itemModel]);
if (!tableFilterable || !!columnHeaderRow) {
return React.createElement(Child, __assign({}, etcProps, { columnHeaderRow: columnHeaderRow, itemModel: itemModel }));
}
return React.createElement(Child, __assign({}, etcProps, { columnHeaderRow: ColumnHeaderRowWithFilter, itemModel: itemModel }));
};
};
export default withFilterable;