Check for `room` in all `Room.timeline*` handlers

All `Room.timeline*` handlers must currently test for `room` first if they
expect it to exist. It is emitted not only for rooms, but also for timeline sets
without rooms, such as for notifications.

Almost all such handlers were correctly testing as needed, but it was missing
from `RoomBreadcrumbs`.

While that's quite confusing, we can start by testing for `room` when we expect
to have one.

Fixes https://github.com/vector-im/riot-web/issues/9630
pull/21833/head
J. Ryan Stinnett 2019-05-03 17:52:27 +01:00
parent 4450740d7d
commit df4e6a3913
1 changed files with 1 additions and 0 deletions

View File

@ -117,6 +117,7 @@ export default class RoomBreadcrumbs extends React.Component {
}; };
onRoomTimeline = (event, room) => { onRoomTimeline = (event, room) => {
if (!room) return; // Can be null for the notification timeline, etc.
if (this.state.rooms.map(r => r.room.roomId).includes(room.roomId)) { if (this.state.rooms.map(r => r.room.roomId).includes(room.roomId)) {
this._calculateRoomBadges(room); this._calculateRoomBadges(room);
} }