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

Commit 9c5b1f3

Browse files
author
Kerry
authored
Remove async call to get virtual room from room load (#9743)
* remove async call to get virtual room from room load * dont init timeline twice when overlay and focused event both change * strict error * prettier
1 parent 47cc8d6 commit 9c5b1f3

File tree

2 files changed

+12
-8
lines changed

2 files changed

+12
-8
lines changed

src/components/structures/RoomView.tsx

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -658,12 +658,7 @@ export class RoomView extends React.Component<IRoomProps, IRoomState> {
658658
// NB: This does assume that the roomID will not change for the lifetime of
659659
// the RoomView instance
660660
if (initial) {
661-
const virtualRoom = newState.roomId
662-
? await VoipUserMapper.sharedInstance().getVirtualRoomForRoom(newState.roomId)
663-
: undefined;
664-
665661
newState.room = this.context.client!.getRoom(newState.roomId) || undefined;
666-
newState.virtualRoom = virtualRoom || undefined;
667662
if (newState.room) {
668663
newState.showApps = this.shouldShowApps(newState.room);
669664
this.onRoomLoaded(newState.room);
@@ -1208,6 +1203,12 @@ export class RoomView extends React.Component<IRoomProps, IRoomState> {
12081203
return this.messagePanel.canResetTimeline();
12091204
};
12101205

1206+
private loadVirtualRoom = async (room?: Room): Promise<void> => {
1207+
const virtualRoom = room?.roomId && (await VoipUserMapper.sharedInstance().getVirtualRoomForRoom(room?.roomId));
1208+
1209+
this.setState({ virtualRoom: virtualRoom || undefined });
1210+
};
1211+
12111212
// called when state.room is first initialised (either at initial load,
12121213
// after a successful peek, or after we join the room).
12131214
private onRoomLoaded = (room: Room) => {
@@ -1222,6 +1223,7 @@ export class RoomView extends React.Component<IRoomProps, IRoomState> {
12221223
this.updateE2EStatus(room);
12231224
this.updatePermissions(room);
12241225
this.checkWidgets(room);
1226+
this.loadVirtualRoom(room);
12251227

12261228
if (
12271229
this.getMainSplitContentType(room) !== MainSplitContentType.Timeline &&
@@ -1288,7 +1290,7 @@ export class RoomView extends React.Component<IRoomProps, IRoomState> {
12881290
});
12891291
}
12901292

1291-
private onRoom = async (room: Room) => {
1293+
private onRoom = (room: Room) => {
12921294
if (!room || room.roomId !== this.state.roomId) {
12931295
return;
12941296
}
@@ -1301,11 +1303,9 @@ export class RoomView extends React.Component<IRoomProps, IRoomState> {
13011303
);
13021304
}
13031305

1304-
const virtualRoom = await VoipUserMapper.sharedInstance().getVirtualRoomForRoom(room.roomId);
13051306
this.setState(
13061307
{
13071308
room: room,
1308-
virtualRoom: virtualRoom || undefined,
13091309
},
13101310
() => {
13111311
this.onRoomLoaded(room);

src/components/structures/TimelinePanel.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -342,12 +342,16 @@ class TimelinePanel extends React.Component<IProps, IState> {
342342
const differentEventId = prevProps.eventId != this.props.eventId;
343343
const differentHighlightedEventId = prevProps.highlightedEventId != this.props.highlightedEventId;
344344
const differentAvoidJump = prevProps.eventScrollIntoView && !this.props.eventScrollIntoView;
345+
const differentOverlayTimeline = prevProps.overlayTimelineSet !== this.props.overlayTimelineSet;
345346
if (differentEventId || differentHighlightedEventId || differentAvoidJump) {
346347
logger.log(
347348
`TimelinePanel switching to eventId ${this.props.eventId} (was ${prevProps.eventId}), ` +
348349
`scrollIntoView: ${this.props.eventScrollIntoView} (was ${prevProps.eventScrollIntoView})`,
349350
);
350351
this.initTimeline(this.props);
352+
} else if (differentOverlayTimeline) {
353+
logger.log(`TimelinePanel updating overlay timeline.`);
354+
this.initTimeline(this.props);
351355
}
352356
}
353357

0 commit comments

Comments
 (0)