UNPKG

@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
"use strict"; 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;