@vlsergey/react-bootstrap-pagetable
Version:
Complex solution to work with pageable data, including sorting, filtering, actions, changing displayed columns, etc.
26 lines (25 loc) • 1.35 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
/** @jsx jsx */
var react_1 = require("@emotion/react");
var react_2 = tslib_1.__importStar(require("react"));
var ItemFieldValue_1 = tslib_1.__importDefault(require("../ItemFieldValue"));
var ControlledContext_1 = require("./ControlledContext");
function DefaultItemFieldCellRenderer(_a) {
var field = _a.field, item = _a.item, etc = tslib_1.__rest(_a, ["field", "item"]);
var _b = ControlledContext_1.useControlledContext(), itemModel = _b.itemModel, itemFieldCellHyperlink = _b.itemFieldCellHyperlink, itemFieldCellLinkWrapper = _b.itemFieldCellLinkWrapper;
var hyperlink = react_2.useMemo(function () {
return itemFieldCellHyperlink(item, field);
}, [itemFieldCellHyperlink, item, field]);
var children = react_1.jsx(ItemFieldValue_1.default, { field: field, item: item, itemModel: itemModel });
if (hyperlink) {
children = react_2.default.createElement(itemFieldCellLinkWrapper, {
field: field,
hyperlink: hyperlink,
item: item
}, children);
}
return react_1.jsx("td", tslib_1.__assign({ css: react_1.css('height: inherit;') }, etc), children);
}
exports.default = react_2.default.memo(DefaultItemFieldCellRenderer);
;