UNPKG

@talend/react-components

Version:
78 lines (77 loc) 2.42 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _propTypes = _interopRequireDefault(require("prop-types")); var _reactVirtualized = require("react-virtualized"); var _VList = _interopRequireDefault(require("../VList")); var _context = require("../context"); var _lodash = require("lodash"); var _jsxRuntime = require("react/jsx-runtime"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } const DEFAULT_THRESHOLD = 5; const DEFAULT_MIN_BATCH_SIZE = 20; const DEFAULT_DEBOUNCE_DELAY = 0; function LazyLoadingList(props) { const { rowCount, threshold, minimumBatchSize, loadMoreRows, debounceDelay, onRowsRendered: parentOnRowsRendered, ...rest } = props; const { collection } = (0, _context.useListContext)(); const isRowLoaded = ({ index }) => collection && collection[index]; let loadMoreRowsCallback = loadMoreRows; if (loadMoreRowsCallback && debounceDelay) { loadMoreRowsCallback = (0, _lodash.debounce)(loadMoreRowsCallback, debounceDelay); } return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactVirtualized.InfiniteLoader, { isRowLoaded: isRowLoaded, loadMoreRows: loadMoreRowsCallback, minimumBatchSize: minimumBatchSize, rowCount: rowCount, threshold: threshold, children: ({ onRowsRendered, registerChild }) => { function combinedOnRowsRendered(...args) { if (parentOnRowsRendered) { parentOnRowsRendered(...args); } onRowsRendered(...args); } return /*#__PURE__*/(0, _jsxRuntime.jsx)(_VList.default, { registerChild: registerChild, onRowsRendered: combinedOnRowsRendered, rowCount: rowCount, ...rest }); } }); } LazyLoadingList.defaultProps = { threshold: DEFAULT_THRESHOLD, minimumBatchSize: DEFAULT_MIN_BATCH_SIZE, debounceDelay: DEFAULT_DEBOUNCE_DELAY }; if (process.env.NODE_ENV !== 'production') { LazyLoadingList.propTypes = { loadMoreRows: _propTypes.default.func.isRequired, onRowsRendered: _propTypes.default.func, rowCount: _propTypes.default.number, threshold: _propTypes.default.number, minimumBatchSize: _propTypes.default.number, debounceDelay: _propTypes.default.number }; } var _default = exports.default = LazyLoadingList; //# sourceMappingURL=LazyLoadingList.component.js.map