You've already forked matrix-react-sdk
mirror of
https://github.com/matrix-org/matrix-react-sdk.git
synced 2025-11-11 20:22:36 +03:00
@@ -130,11 +130,6 @@ export default class RoomSubList extends React.PureComponent {
|
||||
this.props.list.some((r) => r.roomId === payload.room_id)
|
||||
) {
|
||||
this.onClick();
|
||||
// re-fire to scroll the room tile, normally it catches `view_room` but here it wasn't rendered yet.
|
||||
dis.dispatch({
|
||||
action: 'scroll_room_tile',
|
||||
room_id: payload.room_id,
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -226,19 +226,23 @@ export default createReactClass({
|
||||
this.forceUpdate();
|
||||
break;
|
||||
|
||||
case 'scroll_room_tile':
|
||||
case 'view_room':
|
||||
// when the room is selected make sure its tile is visible, for breadcrumbs/keyboard shortcuts
|
||||
if (payload.room_id === this.props.room.roomId && this._roomTile.current) {
|
||||
this._roomTile.current.scrollIntoView({
|
||||
block: "nearest",
|
||||
behavior: "auto",
|
||||
});
|
||||
// when the room is selected make sure its tile is visible, for breadcrumbs/keyboard shortcut access
|
||||
if (payload.room_id === this.props.room.roomId) {
|
||||
this._scrollIntoView();
|
||||
}
|
||||
break;
|
||||
}
|
||||
},
|
||||
|
||||
_scrollIntoView: function() {
|
||||
if (!this._roomTile.current) return;
|
||||
this._roomTile.current.scrollIntoView({
|
||||
block: "nearest",
|
||||
behavior: "auto",
|
||||
});
|
||||
},
|
||||
|
||||
_onActiveRoomChange: function() {
|
||||
this.setState({
|
||||
selected: this.props.room.roomId === RoomViewStore.getRoomId(),
|
||||
@@ -272,6 +276,11 @@ export default createReactClass({
|
||||
statusUser.on("User._unstable_statusMessage", this._onStatusMessageCommitted);
|
||||
}
|
||||
}
|
||||
|
||||
// when we're first rendered (or our sublist is expanded) make sure we are visible if we're active
|
||||
if (this.state.selected) {
|
||||
this._scrollIntoView();
|
||||
}
|
||||
},
|
||||
|
||||
componentWillUnmount: function() {
|
||||
|
||||
Reference in New Issue
Block a user