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'); const modal = Modal.createDialog(Loader, null, 'mx_Dialog_spinner');
let roomId; 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() { return client.createRoom(createOpts).finally(function() {
modal.close(); modal.close();
}).then(function(res) { }).then(function(res) {
@ -98,10 +104,16 @@ function createRoom(opts) {
action: 'view_room', action: 'view_room',
room_id: roomId, room_id: roomId,
should_peek: false, should_peek: false,
// Creating a room will have joined us to the room
joined: true,
}); });
} }
return roomId; return roomId;
}, function(err) { }, 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); console.error("Failed to create room " + roomId + " " + err);
Modal.createDialog(ErrorDialog, { Modal.createDialog(ErrorDialog, {
title: _t("Failure to create room"), 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, 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 // If an event ID wasn't specified, default to the one saved for this room
// via update_scroll_state. Assume initialEventPixelOffset should be set. // via update_scroll_state. Assume initialEventPixelOffset should be set.
if (!newState.initialEventId) { if (!newState.initialEventId) {