Skip to content

Commit

Permalink
fix(cdk/scrolling): Prevents NaN being returned as firstVisibleIndex. (
Browse files Browse the repository at this point in the history
…#21505)

When firstVisibleIndex divides by zero, which can happen when the page
is built and loaded dynamically; the NaN result will be used in other calculations.

This then throws off things like the `newRange.start` value also returning NaN, breaking the plugin.

(cherry picked from commit 390afca)
  • Loading branch information
Bjeaurn authored and annieyw committed Jan 9, 2021
1 parent 819e2f8 commit 8875221
Showing 1 changed file with 2 additions and 1 deletion.
3 changes: 2 additions & 1 deletion src/cdk/scrolling/fixed-size-virtual-scroll.ts
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,8 @@ export class FixedSizeVirtualScrollStrategy implements VirtualScrollStrategy {
const viewportSize = this._viewport.getViewportSize();
const dataLength = this._viewport.getDataLength();
let scrollOffset = this._viewport.measureScrollOffset();
let firstVisibleIndex = scrollOffset / this._itemSize;
// Prevent NaN as result when dividing by zero.
let firstVisibleIndex = (this._itemSize > 0) ? scrollOffset / this._itemSize : 0;

// If user scrolls to the bottom of the list and data changes to a smaller list
if (newRange.end > dataLength) {
Expand Down

0 comments on commit 8875221

Please sign in to comment.