close the room tile view model as well when closing a room so it does not stay selected

This commit is contained in:
Bruno Windels 2020-08-27 10:07:47 +02:00
parent 9b02dc5a3e
commit 59443e6602

View File

@ -57,24 +57,20 @@ export class SessionViewModel extends ViewModel {
} }
_closeCurrentRoom() { _closeCurrentRoom() {
if (this._currentRoomViewModel) { this._currentRoomTileViewModel?.close();
this._currentRoomViewModel = this.disposeTracked(this._currentRoomViewModel); this._currentRoomViewModel = this.disposeTracked(this._currentRoomViewModel);
this.emitChange("currentRoom");
}
} }
_openRoom(room, roomTileVM) { _openRoom(room, roomTileVM) {
if (this._currentRoomTileViewModel) { this._closeCurrentRoom();
this._currentRoomTileViewModel.close();
}
this._currentRoomTileViewModel = roomTileVM; this._currentRoomTileViewModel = roomTileVM;
if (this._currentRoomViewModel) {
this._currentRoomViewModel = this.disposeTracked(this._currentRoomViewModel);
}
this._currentRoomViewModel = this.track(new RoomViewModel(this.childOptions({ this._currentRoomViewModel = this.track(new RoomViewModel(this.childOptions({
room, room,
ownUserId: this._session.user.id, ownUserId: this._session.user.id,
closeCallback: () => this._closeCurrentRoom(), closeCallback: () => {
this._closeCurrentRoom();
this.emitChange("currentRoom");
},
}))); })));
this._currentRoomViewModel.load(); this._currentRoomViewModel.load();
this.emitChange("currentRoom"); this.emitChange("currentRoom");