@talend/react-components
Version:
Set of react components.
52 lines (51 loc) • 1.72 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _classnames = _interopRequireDefault(require("classnames"));
var _RowSelectionModule = _interopRequireDefault(require("./RowSelection.module.scss"));
var _jsxRuntime = require("react/jsx-runtime");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
/**
* Higher order row-renderer that wrap the provided row renderer.
* It manages row selection classname and inject it to the row renderer props.
*/function getRowSelectionRenderer(WrappedComponent, {
isSelected,
isActive,
getRowState,
getRowData,
as,
rowProps
}) {
function RowSelection(props) {
const rowData = getRowData(props);
const active = isActive && isActive(rowData);
const selected = isSelected && isSelected(rowData);
const {
disabled = false
} = getRowState && getRowState(rowData) || {};
const enhancedClassNames = (0, _classnames.default)(props.className, _RowSelectionModule.default['row-selection'], {
[_RowSelectionModule.default.active]: active
}, {
active
}, {
[_RowSelectionModule.default.selected]: selected
}, {
[_RowSelectionModule.default.disabled]: disabled
}, {
selected
});
return /*#__PURE__*/(0, _jsxRuntime.jsx)(WrappedComponent, {
...props,
...rowProps,
as: as,
className: enhancedClassNames
});
}
RowSelection.propTypes = WrappedComponent.propTypes;
RowSelection.displayName = `RowSelection(${WrappedComponent.displayName})`;
return RowSelection;
}
var _default = exports.default = getRowSelectionRenderer;
//# sourceMappingURL=RowSelection.component.js.map