Fix view_next_room, view_previous_room and view_indexed_room

These must now make a dispatch to RoomViewStore instead of calling `viewRoom` directly on MatrixChat. This will call both `viewRoom` of MatrixChat _and_ the logic in RVS so there is some redundancy here. It'd be best to move as much as possible of viewRoom out to the RVS itself.

But for now, this fixes a bug that occures when leaving (the viewed room would not change).
This commit is contained in:
Luke Barnard 2017-05-25 17:10:49 +01:00
parent 91edc06441
commit 0849b0e205

View File

@ -553,6 +553,7 @@ module.exports = React.createClass({
this.notifyNewScreen('register'); this.notifyNewScreen('register');
}, },
// TODO: Move to RoomViewStore
_viewNextRoom: function(roomIndexDelta) { _viewNextRoom: function(roomIndexDelta) {
const allRooms = RoomListSorter.mostRecentActivityFirst( const allRooms = RoomListSorter.mostRecentActivityFirst(
MatrixClientPeg.get().getRooms(), MatrixClientPeg.get().getRooms(),
@ -566,15 +567,22 @@ module.exports = React.createClass({
} }
roomIndex = (roomIndex + roomIndexDelta) % allRooms.length; roomIndex = (roomIndex + roomIndexDelta) % allRooms.length;
if (roomIndex < 0) roomIndex = allRooms.length - 1; if (roomIndex < 0) roomIndex = allRooms.length - 1;
this._viewRoom({ room_id: allRooms[roomIndex].roomId }); dis.dispatch({
action: 'view_room',
room_id: allRooms[roomIndex].roomId,
});
}, },
// TODO: Move to RoomViewStore
_viewIndexedRoom: function(roomIndex) { _viewIndexedRoom: function(roomIndex) {
const allRooms = RoomListSorter.mostRecentActivityFirst( const allRooms = RoomListSorter.mostRecentActivityFirst(
MatrixClientPeg.get().getRooms(), MatrixClientPeg.get().getRooms(),
); );
if (allRooms[roomIndex]) { if (allRooms[roomIndex]) {
this._viewRoom({ room_id: allRooms[roomIndex].roomId }); dis.dispatch({
action: 'view_room',
room_id: allRooms[roomIndex].roomId,
});
} }
}, },