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.01 kB
import { __assign } from "tslib"; import React, { useCallback } from 'react'; import { useControlledContext } from '../controlled/ControlledContext'; var FieldFilterCell = function (_a) { var field = _a.field; var _b = useControlledContext(), fetchArgs = _b.fetchArgs, onFetchArgsChange = _b.onFetchArgsChange; var onFilterByChange = useCallback(function (newFilterBy) { var _a; return onFetchArgsChange(__assign(__assign({}, fetchArgs), { filter: __assign(__assign({}, fetchArgs.filter), (_a = {}, _a[field.key] = newFilterBy, _a)) })); }, [field, fetchArgs, onFetchArgsChange]); if (!field.renderFilterCell) { return React.createElement('td'); } var filterCellRenderer = field.renderFilterCell; return React.createElement(filterCellRenderer, { field: field, filterBy: ((fetchArgs.filter || {})[field.key] || null), onFilterByChange: onFilterByChange, }); }; export default React.memo(FieldFilterCell);