Skip to content
This repository was archived by the owner on Sep 11, 2024. It is now read-only.

Commit ba171f1

Browse files
authored
Fix soft crash around room view store metrics (#9190)
* Fix soft crash around room view store metrics * Use awaitRoomDownSync utility
1 parent 05e179f commit ba171f1

File tree

1 file changed

+3
-14
lines changed

1 file changed

+3
-14
lines changed

src/stores/RoomViewStore.tsx

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import { ViewRoom as ViewRoomEvent } from "@matrix-org/analytics-events/types/ty
2424
import { JoinedRoom as JoinedRoomEvent } from "@matrix-org/analytics-events/types/typescript/JoinedRoom";
2525
import { JoinRule } from "matrix-js-sdk/src/@types/partials";
2626
import { Room } from "matrix-js-sdk/src/models/room";
27-
import { ClientEvent } from "matrix-js-sdk/src/client";
2827
import { MatrixEvent } from "matrix-js-sdk/src/models/event";
2928
import { Optional } from "matrix-events-sdk";
3029

@@ -48,6 +47,7 @@ import { JoinRoomErrorPayload } from "../dispatcher/payloads/JoinRoomErrorPayloa
4847
import { ViewRoomErrorPayload } from "../dispatcher/payloads/ViewRoomErrorPayload";
4948
import ErrorDialog from "../components/views/dialogs/ErrorDialog";
5049
import { ActiveRoomChangedPayload } from "../dispatcher/payloads/ActiveRoomChangedPayload";
50+
import { awaitRoomDownSync } from "../utils/RoomUpgrade";
5151

5252
const NUM_JOIN_RETRY = 5;
5353

@@ -209,10 +209,7 @@ export class RoomViewStore extends Store<ActionPayload> {
209209
this.setState({ shouldPeek: false });
210210
}
211211

212-
const cli = MatrixClientPeg.get();
213-
214-
const updateMetrics = () => {
215-
const room = cli.getRoom(payload.roomId);
212+
awaitRoomDownSync(MatrixClientPeg.get(), payload.roomId).then(room => {
216213
const numMembers = room.getJoinedMemberCount();
217214
const roomSize = numMembers > 1000 ? "MoreThanAThousand"
218215
: numMembers > 100 ? "OneHundredAndOneToAThousand"
@@ -228,15 +225,7 @@ export class RoomViewStore extends Store<ActionPayload> {
228225
isDM: !!DMRoomMap.shared().getUserIdForRoomId(room.roomId),
229226
isSpace: room.isSpaceRoom(),
230227
});
231-
232-
cli.off(ClientEvent.Room, updateMetrics);
233-
};
234-
235-
if (cli.getRoom(payload.roomId)) {
236-
updateMetrics();
237-
} else {
238-
cli.on(ClientEvent.Room, updateMetrics);
239-
}
228+
});
240229

241230
break;
242231
}

0 commit comments

Comments
 (0)