mirror of
https://github.com/vector-im/element-web.git
synced 2024-11-16 21:24:59 +08:00
Regenerate room lists on Room event
To make sure that we handle rooms that our client has not seen previously, we regenerate the room list when the room is stored - which is indicated by the js-sdk by the Room event.
This commit is contained in:
parent
b5146001d6
commit
644ddbf9b9
@ -62,6 +62,10 @@ function createAccountDataAction(matrixClient, accountDataEvent) {
|
||||
};
|
||||
}
|
||||
|
||||
function createRoomAction(matrixClient, room) {
|
||||
return { action: 'MatrixActions.Room', room };
|
||||
}
|
||||
|
||||
function createRoomTagsAction(matrixClient, roomTagsEvent, room) {
|
||||
return { action: 'MatrixActions.Room.tags', room };
|
||||
}
|
||||
@ -96,6 +100,7 @@ export default {
|
||||
start(matrixClient) {
|
||||
this._addMatrixClientListener(matrixClient, 'sync', createSyncAction);
|
||||
this._addMatrixClientListener(matrixClient, 'accountData', createAccountDataAction);
|
||||
this._addMatrixClientListener(matrixClient, 'Room', createRoomAction);
|
||||
this._addMatrixClientListener(matrixClient, 'Room.tags', createRoomTagsAction);
|
||||
this._addMatrixClientListener(matrixClient, 'Room.timeline', createRoomTimelineAction);
|
||||
this._addMatrixClientListener(matrixClient, 'RoomMember.membership', createRoomMembershipAction);
|
||||
|
@ -97,6 +97,14 @@ class RoomListStore extends Store {
|
||||
this._generateRoomLists();
|
||||
}
|
||||
break;
|
||||
// This could be a new room that we've been invited to, joined or created
|
||||
// we won't get a RoomMember.membership for these cases if we're not already
|
||||
// a member.
|
||||
case 'MatrixActions.Room': {
|
||||
if (!this._state.ready || !this._matrixClient.credentials.userId) break;
|
||||
this._generateRoomLists();
|
||||
}
|
||||
break;
|
||||
case 'RoomListActions.tagRoom.pending': {
|
||||
// XXX: we only show one optimistic update at any one time.
|
||||
// Ideally we should be making a list of in-flight requests
|
||||
|
Loading…
Reference in New Issue
Block a user