Simplify dispatch blocks

This commit is contained in:
J. Ryan Stinnett 2019-11-12 13:29:01 +00:00
parent d72dedb0ce
commit 3f2b77189e

View file

@ -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,
});
}
} }
} }