Fix issue with spaces context switching looping and breaking

pull/21833/head
Michael Telatynski 2021-04-21 09:01:22 +01:00
parent b2e9f6731b
commit ecd9b8d6de
1 changed files with 6 additions and 0 deletions

View File

@ -124,11 +124,13 @@ export class SpaceStoreClass extends AsyncStoreWithClient<IState> {
defaultDispatcher.dispatch({ defaultDispatcher.dispatch({
action: "view_room", action: "view_room",
room_id: roomId, room_id: roomId,
context_switch: true,
}); });
} else if (space) { } else if (space) {
defaultDispatcher.dispatch({ defaultDispatcher.dispatch({
action: "view_room", action: "view_room",
room_id: space.roomId, room_id: space.roomId,
context_switch: true,
}); });
} else { } else {
defaultDispatcher.dispatch({ defaultDispatcher.dispatch({
@ -513,6 +515,10 @@ export class SpaceStoreClass extends AsyncStoreWithClient<IState> {
case "view_room": { case "view_room": {
const room = this.matrixClient?.getRoom(payload.room_id); const room = this.matrixClient?.getRoom(payload.room_id);
// Don't auto-switch rooms when reacting to a context-switch
// as this is not helpful and can create loops of rooms/space switching
if (payload.context_switch) break;
// persist last viewed room from a space // persist last viewed room from a space
if (room) { if (room) {
window.localStorage.setItem(getLastViewedRoomsStorageKey(this.activeSpace), payload.room_id); window.localStorage.setItem(getLastViewedRoomsStorageKey(this.activeSpace), payload.room_id);