Merge pull request #6886 from matrix-org/t3chguy/fix/19223
commit
fbf74bea1b
|
@ -183,7 +183,7 @@ export class SpaceStoreClass extends AsyncStoreWithClient<IState> {
|
||||||
* should not be done when the space switch is done implicitly due to another event like switching room.
|
* should not be done when the space switch is done implicitly due to another event like switching room.
|
||||||
*/
|
*/
|
||||||
public setActiveSpace(space: Room | null, contextSwitch = true) {
|
public setActiveSpace(space: Room | null, contextSwitch = true) {
|
||||||
if (space === this.activeSpace || (space && !space.isSpaceRoom())) return;
|
if (!this.matrixClient || space === this.activeSpace || (space && !space.isSpaceRoom())) return;
|
||||||
|
|
||||||
this._activeSpace = space;
|
this._activeSpace = space;
|
||||||
this.emit(UPDATE_SELECTED_SPACE, this.activeSpace);
|
this.emit(UPDATE_SELECTED_SPACE, this.activeSpace);
|
||||||
|
@ -197,7 +197,7 @@ export class SpaceStoreClass extends AsyncStoreWithClient<IState> {
|
||||||
// else if the last viewed room in this space is joined then view that
|
// else if the last viewed room in this space is joined then view that
|
||||||
// else view space home or home depending on what is being clicked on
|
// else view space home or home depending on what is being clicked on
|
||||||
if (space?.getMyMembership() !== "invite" &&
|
if (space?.getMyMembership() !== "invite" &&
|
||||||
this.matrixClient?.getRoom(roomId)?.getMyMembership() === "join" &&
|
this.matrixClient.getRoom(roomId)?.getMyMembership() === "join" &&
|
||||||
this.getSpaceFilteredRoomIds(space).has(roomId)
|
this.getSpaceFilteredRoomIds(space).has(roomId)
|
||||||
) {
|
) {
|
||||||
defaultDispatcher.dispatch({
|
defaultDispatcher.dispatch({
|
||||||
|
@ -230,7 +230,7 @@ export class SpaceStoreClass extends AsyncStoreWithClient<IState> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private async loadSuggestedRooms(space) {
|
private async loadSuggestedRooms(space: Room): Promise<void> {
|
||||||
const suggestedRooms = await this.fetchSuggestedRooms(space);
|
const suggestedRooms = await this.fetchSuggestedRooms(space);
|
||||||
if (this._activeSpace === space) {
|
if (this._activeSpace === space) {
|
||||||
this._suggestedRooms = suggestedRooms;
|
this._suggestedRooms = suggestedRooms;
|
||||||
|
@ -335,6 +335,8 @@ export class SpaceStoreClass extends AsyncStoreWithClient<IState> {
|
||||||
};
|
};
|
||||||
|
|
||||||
private rebuild = throttle(() => {
|
private rebuild = throttle(() => {
|
||||||
|
if (!this.matrixClient) return;
|
||||||
|
|
||||||
const [visibleSpaces, visibleRooms] = partitionSpacesAndRooms(this.matrixClient.getVisibleRooms());
|
const [visibleSpaces, visibleRooms] = partitionSpacesAndRooms(this.matrixClient.getVisibleRooms());
|
||||||
const [joinedSpaces, invitedSpaces] = visibleSpaces.reduce((arr, s) => {
|
const [joinedSpaces, invitedSpaces] = visibleSpaces.reduce((arr, s) => {
|
||||||
if (s.getMyMembership() === "join") {
|
if (s.getMyMembership() === "join") {
|
||||||
|
@ -751,7 +753,7 @@ export class SpaceStoreClass extends AsyncStoreWithClient<IState> {
|
||||||
}
|
}
|
||||||
|
|
||||||
protected async onAction(payload: ActionPayload) {
|
protected async onAction(payload: ActionPayload) {
|
||||||
if (!spacesEnabled || !this.matrixClient) return;
|
if (!spacesEnabled) return;
|
||||||
switch (payload.action) {
|
switch (payload.action) {
|
||||||
case "view_room": {
|
case "view_room": {
|
||||||
// Don't auto-switch rooms when reacting to a context-switch
|
// Don't auto-switch rooms when reacting to a context-switch
|
||||||
|
|
Loading…
Reference in New Issue