Simplify dispatch blocks
This commit is contained in:
parent
d72dedb0ce
commit
3f2b77189e
1 changed files with 34 additions and 41 deletions
|
@ -179,50 +179,43 @@ class RoomViewStore extends Store {
|
||||||
} else if (payload.room_alias) {
|
} else if (payload.room_alias) {
|
||||||
// Try the room alias to room ID navigation cache first to avoid
|
// Try the room alias to room ID navigation cache first to avoid
|
||||||
// blocking room navigation on the homeserver.
|
// blocking room navigation on the homeserver.
|
||||||
const roomId = getCachedRoomIDForAlias(payload.room_alias);
|
let roomId = getCachedRoomIDForAlias(payload.room_alias);
|
||||||
if (roomId) {
|
if (!roomId) {
|
||||||
dis.dispatch({
|
// Room alias cache miss, so let's ask the homeserver. Resolve the alias
|
||||||
action: 'view_room',
|
// and then do a second dispatch with the room ID acquired.
|
||||||
room_id: roomId,
|
this._setState({
|
||||||
event_id: payload.event_id,
|
roomId: null,
|
||||||
highlighted: payload.highlighted,
|
initialEventId: null,
|
||||||
room_alias: payload.room_alias,
|
initialEventPixelOffset: null,
|
||||||
auto_join: payload.auto_join,
|
isInitialEventHighlighted: null,
|
||||||
oob_data: payload.oob_data,
|
roomAlias: payload.room_alias,
|
||||||
|
roomLoading: true,
|
||||||
|
roomLoadError: null,
|
||||||
});
|
});
|
||||||
return;
|
try {
|
||||||
|
const result = await MatrixClientPeg.get().getRoomIdForAlias(payload.room_alias);
|
||||||
|
storeRoomAliasInCache(payload.room_alias, result.room_id);
|
||||||
|
roomId = result.room_id;
|
||||||
|
} catch (err) {
|
||||||
|
dis.dispatch({
|
||||||
|
action: 'view_room_error',
|
||||||
|
room_id: null,
|
||||||
|
room_alias: payload.room_alias,
|
||||||
|
err,
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// Room alias cache miss, so let's ask the homeserver.
|
|
||||||
// Resolve the alias and then do a second dispatch with the room ID acquired
|
dis.dispatch({
|
||||||
this._setState({
|
action: 'view_room',
|
||||||
roomId: null,
|
room_id: roomId,
|
||||||
initialEventId: null,
|
event_id: payload.event_id,
|
||||||
initialEventPixelOffset: null,
|
highlighted: payload.highlighted,
|
||||||
isInitialEventHighlighted: null,
|
room_alias: payload.room_alias,
|
||||||
roomAlias: payload.room_alias,
|
auto_join: payload.auto_join,
|
||||||
roomLoading: true,
|
oob_data: payload.oob_data,
|
||||||
roomLoadError: null,
|
|
||||||
});
|
});
|
||||||
try {
|
|
||||||
const result = await MatrixClientPeg.get().getRoomIdForAlias(payload.room_alias);
|
|
||||||
storeRoomAliasInCache(payload.room_alias, result.room_id);
|
|
||||||
dis.dispatch({
|
|
||||||
action: 'view_room',
|
|
||||||
room_id: result.room_id,
|
|
||||||
event_id: payload.event_id,
|
|
||||||
highlighted: payload.highlighted,
|
|
||||||
room_alias: payload.room_alias,
|
|
||||||
auto_join: payload.auto_join,
|
|
||||||
oob_data: payload.oob_data,
|
|
||||||
});
|
|
||||||
} catch (err) {
|
|
||||||
dis.dispatch({
|
|
||||||
action: 'view_room_error',
|
|
||||||
room_id: null,
|
|
||||||
room_alias: payload.room_alias,
|
|
||||||
err,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue