@talend/react-components
Version:
Set of react components.
76 lines (75 loc) • 2.56 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _propTypes = _interopRequireDefault(require("prop-types"));
var _reactVirtualized = require("react-virtualized");
var _RowSelection = _interopRequireDefault(require("../RowSelection"));
var _ListGridModule = _interopRequireDefault(require("./ListGrid.module.scss"));
var _rowclick = require("../event/rowclick");
var _jsxRuntime = require("react/jsx-runtime");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
/**
* List renderer that accepts a custom row renderer.
* The row renderer will create a row element for each collection item.
*/function ListGrid(props) {
const {
collection,
isActive,
isSelected,
getRowState,
onRowClick,
onRowDoubleClick,
rowRenderer,
rowCount,
...restProps
} = props;
let enhancedRowRenderer = rowRenderer;
if (isActive || isSelected || getRowState) {
enhancedRowRenderer = (0, _RowSelection.default)(rowRenderer, {
isActive,
isSelected,
getRowState,
getRowData: ({
index
}) => collection[index]
});
}
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactVirtualized.List, {
className: `tc-list-list ${_ListGridModule.default['tc-list-list']}`,
collection: collection,
overscanRowCount: 10,
onRowClick: (0, _rowclick.decorateRowClick)(onRowClick),
onRowDoubleClick: (0, _rowclick.decorateRowDoubleClick)(onRowDoubleClick),
rowCount: rowCount || collection.length,
rowRenderer: enhancedRowRenderer,
rowGetter: index => collection[index] || {},
role: "group",
"aria-label": "list",
containerRole: "list",
...restProps
});
}
ListGrid.displayName = 'VirtualizedList(ListGrid)';
ListGrid.propTypes = {
children: _propTypes.default.arrayOf(_propTypes.default.element),
collection: _propTypes.default.arrayOf(_propTypes.default.object),
height: _propTypes.default.number,
id: _propTypes.default.string,
isActive: _propTypes.default.func,
isSelected: _propTypes.default.func,
getRowState: _propTypes.default.func,
noRowsRenderer: _propTypes.default.func,
onRowClick: _propTypes.default.func,
onRowDoubleClick: _propTypes.default.func,
rowCount: _propTypes.default.number,
rowHeight: _propTypes.default.number,
rowRenderer: _propTypes.default.func,
width: _propTypes.default.number
};
ListGrid.defaultProps = {
rowHeight: 170
};
var _default = exports.default = ListGrid;
//# sourceMappingURL=ListGrid.component.js.map