UNPKG

@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.19 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var react_1 = tslib_1.__importStar(require("react")); var ControlledContext_1 = require("../controlled/ControlledContext"); var FieldFilterCell = function (_a) { var field = _a.field; var _b = ControlledContext_1.useControlledContext(), fetchArgs = _b.fetchArgs, onFetchArgsChange = _b.onFetchArgsChange; var onFilterByChange = react_1.useCallback(function (newFilterBy) { var _a; return onFetchArgsChange(tslib_1.__assign(tslib_1.__assign({}, fetchArgs), { filter: tslib_1.__assign(tslib_1.__assign({}, fetchArgs.filter), (_a = {}, _a[field.key] = newFilterBy, _a)) })); }, [field, fetchArgs, onFetchArgsChange]); if (!field.renderFilterCell) { return react_1.default.createElement('td'); } var filterCellRenderer = field.renderFilterCell; return react_1.default.createElement(filterCellRenderer, { field: field, filterBy: ((fetchArgs.filter || {})[field.key] || null), onFilterByChange: onFilterByChange, }); }; exports.default = react_1.default.memo(FieldFilterCell);