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