mirror of
https://github.com/element-hq/element-web
synced 2024-11-24 18:25:49 +03:00
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:
parent
3e93930dcc
commit
a921059432
2 changed files with 16 additions and 0 deletions
|
@ -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"),
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
Loading…
Reference in a new issue