Add a callback to RoomView that it can give the room ID to once it's resolved it, since this lookup is now the responsibility of the roomview and only the roomview. The view_room action now has either an alias or an ID, not both. Also fix RoomView to load the room properly and not try to peek when it shouldn't.
Sorts out more of the room joining mess. currentRoom which held the room ID is now more appropriately called currentRoomId. RoomView will now take a roomID or alias as before but will now look up the room ID as required if given the alias. Also, now look up the alias every time you click on it so it's never stale, rather than looking in your current rooms for a room that thinks it has that ID.
This hopefully fixes an issue where joining a federated room via the directory
would get stuck at a spinner of doom, due to us not recognising the room in
question when it came down the /sync. We now catch the room id in the response
from the /join, and use it to match up the room in onRoom.
props.roomAlias, props.roomId, and state.room.roomId were somewhat confusing,
so I've tried to rationalise them:
* props.roomAlias (named thus to stop you assuming it's a room id) is the
thing that the parent component uses to identify the room of interest, and
can be either an ID or an alias (ie, it replaces props.roomId and
props.roomAlias)
* Everything that needs a room ID now has to get it from state.room.roomId.
Update react-sdk to use `pendingEventOrdering`==`detached` instead of
`end`. Look for pending events in the pendingEvent list, and use
MatrixClient.cancelPendingEvent to, uh, cancel pending events.
Pass the invited email through to RoomPreviewBar, display it in a temporary way currently.
Remove a condition from RoomView render that appears to be functionally identical to the previous.
Rather than telling react-gemini-scrollbar to update every time something that
changes its size happens, try out our fork of it which uses some hackery to
listen for resizes.
Showing/hiding the TopUnreadMessagesBar resizes the scrollpanel. Make sure that
we update the gemini panel when this happens.
(Fixes an intermittent bug wherein we could get stuck with a 'scroll to bottom'
indicator after jumping to the bottom, with unread messages in the view)