diff --git a/src/components/structures/RoomSubList.js b/src/components/structures/RoomSubList.js index c49a43db9c..f18b149fd1 100644 --- a/src/components/structures/RoomSubList.js +++ b/src/components/structures/RoomSubList.js @@ -72,19 +72,22 @@ var RoomSubList = React.createClass({ collapsed: React.PropTypes.bool.isRequired, onHeaderClick: React.PropTypes.func, alwaysShowHeader: React.PropTypes.bool, - incomingCall: React.PropTypes.object + incomingCall: React.PropTypes.object, + onShowMoreRooms: React.PropTypes.func }, getInitialState: function() { return { hidden: this.props.startAsHidden || false, + truncateAt: 20, sortedList: [], }; }, getDefaultProps: function() { return { - onHeaderClick: function() {} // NOP + onHeaderClick: function() {}, // NOP + onShowMoreRooms: function() {} // NOP }; }, @@ -101,6 +104,13 @@ var RoomSubList = React.createClass({ onClick: function(ev) { var isHidden = !this.state.hidden; this.setState({ hidden : isHidden }); + + if (isHidden) { + // as good a way as any to reset the truncate state + this.setState({ truncateAt : 20 }); + this.props.onShowMoreRooms(); + } + this.props.onHeaderClick(isHidden); }, @@ -272,9 +282,30 @@ var RoomSubList = React.createClass({ ); }, + _createOverflowTile: function(overflowCount, totalCount) { + var BaseAvatar = sdk.getComponent('avatars.BaseAvatar'); + // XXX: this is duplicated from RoomTile - factor it out + return ( +