UNPKG

@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
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;