Fix vector-im/riot-web#4526 by pretending to join

I thought about adding separate dispatches to prevent confusion but if anyone adds anything that listens to existing dispatches, they really ought to be grep-ing the world for said dispatch actions.
This commit is contained in:
Luke Barnard 2017-07-06 17:40:27 +01:00
parent 3e93930dcc
commit a921059432
2 changed files with 16 additions and 0 deletions

View file

@ -79,6 +79,12 @@ function createRoom(opts) {
const modal = Modal.createDialog(Loader, null, 'mx_Dialog_spinner');
let roomId;
if (opts.andView) {
// We will possibly have a successful join, indicate as such
dis.dispatch({
action: 'will_join',
});
}
return client.createRoom(createOpts).finally(function() {
modal.close();
}).then(function(res) {
@ -98,10 +104,16 @@ function createRoom(opts) {
action: 'view_room',
room_id: roomId,
should_peek: false,
// Creating a room will have joined us to the room
joined: true,
});
}
return roomId;
}, function(err) {
// We also failed to join the room (this sets joining to false in RoomViewStore)
dis.dispatch({
action: 'join_room_error',
});
console.error("Failed to create room " + roomId + " " + err);
Modal.createDialog(ErrorDialog, {
title: _t("Failure to create room"),

View file

@ -141,6 +141,10 @@ class RoomViewStore extends Store {
shouldPeek: payload.should_peek === undefined ? true : payload.should_peek,
};
if (payload.joined) {
newState.joining = false;
}
// If an event ID wasn't specified, default to the one saved for this room
// via update_scroll_state. Assume initialEventPixelOffset should be set.
if (!newState.initialEventId) {