diff --git a/src/components/structures/RoomSubList.js b/src/components/structures/RoomSubList.js index 91b29d4665..b4fbc5406e 100644 --- a/src/components/structures/RoomSubList.js +++ b/src/components/structures/RoomSubList.js @@ -313,6 +313,12 @@ const RoomSubList = React.createClass({ ); }, + checkOverflow: function() { + if (this.refs.scroller) { + this.refs.scroller.checkOverflow(); + } + }, + render: function() { const len = this.props.list.length + this.props.extraTiles.length; if (len) { @@ -330,7 +336,7 @@ const RoomSubList = React.createClass({ tiles.push(...this.props.extraTiles); return
{this._getHeaderJsx()} - + { tiles }
; diff --git a/src/components/views/rooms/RoomList.js b/src/components/views/rooms/RoomList.js index 9e766bdc15..9fb872cd32 100644 --- a/src/components/views/rooms/RoomList.js +++ b/src/components/views/rooms/RoomList.js @@ -71,6 +71,10 @@ module.exports = React.createClass({ getInitialState: function() { + this._subListRefs = { + // key => RoomSubList ref + }; + const sizesJson = window.localStorage.getItem("mx_roomlist_sizes"); const collapsedJson = window.localStorage.getItem("mx_roomlist_collapsed"); this.subListSizes = sizesJson ? JSON.parse(sizesJson) : {}; @@ -174,8 +178,11 @@ module.exports = React.createClass({ this.mounted = true; }, - componentDidUpdate: function() { + componentDidUpdate: function(prevProps) { this._repositionIncomingCallBox(undefined, false); + if (this.props.searchFilter !== prevProps.searchFilter) { + Object.values(this._subListRefs).forEach(l => l.checkOverflow()); + } }, onAction: function(payload) { @@ -483,6 +490,14 @@ module.exports = React.createClass({ window.localStorage.setItem("mx_roomlist_collapsed", JSON.stringify(this.collapsedState)); }, + _subListRef: function(key, ref) { + if (!ref) { + delete this._subListRefs[key]; + } else { + this._subListRefs[key] = ref; + } + }, + _mapSubListProps: function(subListsProps) { const defaultProps = { collapsed: this.props.collapsed, @@ -513,6 +528,7 @@ module.exports = React.createClass({ const startAsHidden = props.startAsHidden || this.collapsedState[chosenKey]; let subList = (