|
230 | 230 |
|
231 | 231 | return scrollParent === window ? document.body[SCROLL_SIZE_KEYS[axis]] : scrollParent[SCROLL_SIZE_KEYS[axis]]; |
232 | 232 | } |
| 233 | + }, { |
| 234 | + key: 'hasDeterminateSize', |
| 235 | + value: function hasDeterminateSize() { |
| 236 | + var _props3 = this.props; |
| 237 | + var itemSizeGetter = _props3.itemSizeGetter; |
| 238 | + var type = _props3.type; |
| 239 | + |
| 240 | + return type === 'uniform' || itemSizeGetter; |
| 241 | + } |
233 | 242 | }, { |
234 | 243 | key: 'getStartAndEnd', |
235 | 244 | value: function getStartAndEnd() { |
236 | 245 | var threshold = arguments.length <= 0 || arguments[0] === undefined ? this.props.threshold : arguments[0]; |
237 | 246 |
|
238 | 247 | var scroll = this.getScroll(); |
239 | 248 | var start = Math.max(0, scroll - threshold); |
240 | | - var end = Math.min(scroll + this.getViewportSize() + threshold, this.getSpaceBefore(this.props.length)); |
| 249 | + var end = scroll + this.getViewportSize() + threshold; |
| 250 | + if (this.hasDeterminateSize()) { |
| 251 | + end = Math.min(end, this.getSpaceBefore(this.props.length)); |
| 252 | + } |
241 | 253 | return { start: start, end: end }; |
242 | 254 | } |
243 | 255 | }, { |
|
315 | 327 |
|
316 | 328 | if (elEnd > end) return cb(); |
317 | 329 |
|
318 | | - var _props3 = this.props; |
319 | | - var pageSize = _props3.pageSize; |
320 | | - var length = _props3.length; |
| 330 | + var _props4 = this.props; |
| 331 | + var pageSize = _props4.pageSize; |
| 332 | + var length = _props4.length; |
321 | 333 |
|
322 | 334 | this.setState({ size: Math.min(this.state.size + pageSize, length) }, cb); |
323 | 335 | } |
|
330 | 342 |
|
331 | 343 | var start = _getStartAndEnd2.start; |
332 | 344 | var end = _getStartAndEnd2.end; |
333 | | - var _props4 = this.props; |
334 | | - var length = _props4.length; |
335 | | - var pageSize = _props4.pageSize; |
| 345 | + var _props5 = this.props; |
| 346 | + var length = _props5.length; |
| 347 | + var pageSize = _props5.pageSize; |
336 | 348 |
|
337 | 349 | var space = 0; |
338 | 350 | var from = 0; |
|
430 | 442 | value: function getSizeOf(index) { |
431 | 443 | var cache = this.cache; |
432 | 444 | var items = this.items; |
433 | | - var _props5 = this.props; |
434 | | - var axis = _props5.axis; |
435 | | - var itemSizeGetter = _props5.itemSizeGetter; |
436 | | - var type = _props5.type; |
| 445 | + var _props6 = this.props; |
| 446 | + var axis = _props6.axis; |
| 447 | + var itemSizeGetter = _props6.itemSizeGetter; |
| 448 | + var type = _props6.type; |
437 | 449 | var _state3 = this.state; |
438 | 450 | var from = _state3.from; |
439 | 451 | var itemSize = _state3.itemSize; |
|
518 | 530 | value: function renderItems() { |
519 | 531 | var _this = this; |
520 | 532 |
|
521 | | - var _props6 = this.props; |
522 | | - var itemRenderer = _props6.itemRenderer; |
523 | | - var itemsRenderer = _props6.itemsRenderer; |
| 533 | + var _props7 = this.props; |
| 534 | + var itemRenderer = _props7.itemRenderer; |
| 535 | + var itemsRenderer = _props7.itemsRenderer; |
524 | 536 | var _state5 = this.state; |
525 | 537 | var from = _state5.from; |
526 | 538 | var size = _state5.size; |
|
535 | 547 | }, { |
536 | 548 | key: 'render', |
537 | 549 | value: function render() { |
538 | | - var _props7 = this.props; |
539 | | - var axis = _props7.axis; |
540 | | - var length = _props7.length; |
541 | | - var type = _props7.type; |
542 | | - var useTranslate3d = _props7.useTranslate3d; |
| 550 | + var _props8 = this.props; |
| 551 | + var axis = _props8.axis; |
| 552 | + var length = _props8.length; |
| 553 | + var type = _props8.type; |
| 554 | + var useTranslate3d = _props8.useTranslate3d; |
543 | 555 | var _state6 = this.state; |
544 | 556 | var from = _state6.from; |
545 | 557 | var itemsPerRow = _state6.itemsPerRow; |
|
0 commit comments