From d889c7deeb1d2a87b618a2823b0e3fd71d373007 Mon Sep 17 00:00:00 2001 From: Bruno Windels <274386+bwindels@users.noreply.github.com> Date: Fri, 25 Nov 2022 10:49:26 +0100 Subject: [PATCH] bound checks in date header loop and cleanup Co-authored-by: R Midhun Suresh --- src/domain/session/room/timeline/TilesCollection.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/domain/session/room/timeline/TilesCollection.js b/src/domain/session/room/timeline/TilesCollection.js index 8dfbf2a1..29e0bdfc 100644 --- a/src/domain/session/room/timeline/TilesCollection.js +++ b/src/domain/session/room/timeline/TilesCollection.js @@ -154,8 +154,14 @@ export class TilesCollection extends BaseObservableList { //console.log("_evaluateDateHeaderAtIdx", tileIdx); // consider the two adjacent tiles where the previous sibling changed: // the new tile and the next tile - for (let i = 0; i < 5; i += 1) { - const idx = Math.max(tileIdx + i - 2, 0); + for (let i = -2; i < 3; i += 1) { + const idx = tileIdx + i; + if (idx < 0) { + continue; + } + if (idx >= this._tiles.length) { + break; + } const tile = this._tiles[idx]; const prevTile = idx > 0 ? this._tiles[idx - 1] : undefined; const hasDateSeparator = prevTile?.shape === TileShape.DateHeader;