From 44a867ffc064a0a7c520c4a86092b10e9c697117 Mon Sep 17 00:00:00 2001 From: R Midhun Suresh Date: Sun, 2 Mar 2025 17:18:17 +0530 Subject: [PATCH] Make code more readable - Make if/else more consistent - Add comment on findAndAddRoom() --- src/stores/room-list-v3/RoomListStoreV3.ts | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/stores/room-list-v3/RoomListStoreV3.ts b/src/stores/room-list-v3/RoomListStoreV3.ts index 171c7c805e..de3502b7d8 100644 --- a/src/stores/room-list-v3/RoomListStoreV3.ts +++ b/src/stores/room-list-v3/RoomListStoreV3.ts @@ -138,12 +138,18 @@ export class RoomListStoreV3Class extends AsyncStoreWithClient { if (!payload.isLiveEvent || !payload.isLiveUnfilteredRoomTimelineEvent || !payload.room) return; const roomId = payload.event.getRoomId(); - const tryAdd = (): boolean => { + const findAndAddRoom = (): boolean => { const room = this.matrixClient?.getRoom(roomId); if (room) this.addRoomAndEmit(room); return !!room; }; - if (!tryAdd()) setTimeout(tryAdd, 100); + // We'll try finding the room associated with this event. + // If we can't find the room, we'll try again after 100ms. + if (!findAndAddRoom()) { + logger.warn(`Live timeline event ${payload.event.getId()} received without associated room`); + logger.warn(`Queuing failed room update for retry as a result.`); + setTimeout(findAndAddRoom, 100); + } break; } @@ -157,11 +163,9 @@ export class RoomListStoreV3Class extends AsyncStoreWithClient { const predecessor = roomState.findPredecessor(this.msc3946ProcessDynamicPredecessor); if (predecessor) { const prevRoom = this.matrixClient?.getRoom(predecessor.roomId); - if (prevRoom) { - this.roomSkipList.removeRoom(prevRoom); - } else { - logger.warn(`Unable to find predecessor room with id ${predecessor.roomId}`); - } + if (prevRoom) this.roomSkipList.removeRoom(prevRoom); + else logger.warn(`Unable to find predecessor room with id ${predecessor.roomId}`); + } } this.addRoomAndEmit(payload.room);