diff --git a/src/domain/session/room/timeline/TimelineViewModel.js b/src/domain/session/room/timeline/TimelineViewModel.js index eafc092c..1c53079d 100644 --- a/src/domain/session/room/timeline/TimelineViewModel.js +++ b/src/domain/session/room/timeline/TimelineViewModel.js @@ -50,6 +50,8 @@ export class TimelineViewModel extends ViewModel { /** if this.tiles is empty, call this with undefined for both startTile and endTile */ setVisibleTileRange(startTile, endTile) { + // don't clear these once done as they are used to check + // for more tiles once loadAtTop finishes this._requestedStartTile = startTile; this._requestedEndTile = endTile; if (!this._requestScheduled) { @@ -85,7 +87,9 @@ export class TimelineViewModel extends ViewModel { this._topLoadingPromise = null; if (!hasReachedEnd) { // check if more items need to be loaded by recursing - this.setVisibleTileRange(this._startTile, this._endTile); + // use the requested start / end tile, + // so we don't end up overwriting a newly requested visible range here + this.setVisibleTileRange(this._requestedStartTile, this._requestedEndTile); } }); } else if (loadTop) {