Don't alter members of payload (when defaulting an event to scroll to), alter a copy
This commit is contained in:
parent
000a045e35
commit
36f72cccb5
1 changed files with 14 additions and 12 deletions
|
@ -121,24 +121,26 @@ class RoomViewStore extends Store {
|
||||||
|
|
||||||
_viewRoom(payload) {
|
_viewRoom(payload) {
|
||||||
if (payload.room_id) {
|
if (payload.room_id) {
|
||||||
// If an event ID wasn't specified, default to the one saved for this room
|
const newState = {
|
||||||
// via update_scroll_state. Also assume event_offset should be set.
|
|
||||||
if (!payload.event_id) {
|
|
||||||
const roomScrollState = this._state.scrollStateMap[payload.room_id];
|
|
||||||
if (roomScrollState) {
|
|
||||||
payload.event_id = roomScrollState.focussedEvent;
|
|
||||||
payload.event_offset = roomScrollState.pixelOffset;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
this._setState({
|
|
||||||
roomId: payload.room_id,
|
roomId: payload.room_id,
|
||||||
initialEventId: payload.event_id,
|
initialEventId: payload.event_id,
|
||||||
initialEventPixelOffset: payload.event_offset,
|
initialEventPixelOffset: payload.event_offset,
|
||||||
isInitialEventHighlighted: payload.highlighted,
|
isInitialEventHighlighted: payload.highlighted,
|
||||||
roomLoading: false,
|
roomLoading: false,
|
||||||
roomLoadError: null,
|
roomLoadError: null,
|
||||||
});
|
};
|
||||||
|
|
||||||
|
// 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) {
|
||||||
|
const roomScrollState = this._state.scrollStateMap[payload.room_id];
|
||||||
|
if (roomScrollState) {
|
||||||
|
newState.initialEventId = roomScrollState.focussedEvent;
|
||||||
|
newState.initialEventPixelOffset = roomScrollState.pixelOffset;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this._setState(newState);
|
||||||
} else if (payload.room_alias) {
|
} else if (payload.room_alias) {
|
||||||
// Resolve the alias and then do a second dispatch with the room ID acquired
|
// Resolve the alias and then do a second dispatch with the room ID acquired
|
||||||
this._setState({
|
this._setState({
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue