Fix extra room tiles being rendered on smaller sublists

Fixes https://github.com/vector-im/riot-web/issues/14426

The issue only applies to lists which won't have a 'show less' button, as the lists with the button would have the button's height considered when determining visible tiles. For lists that were under that (1-4 rooms), the show more button wasn't being considered and thus leading to the padding being added rather than subtracted, causing an extra tile to render.

By ensuring we include the padding for both show more and show less, we ensure that no extra tiles get rendered and that the cutoff semantics are still present.
This commit is contained in:
Travis Ralston 2020-07-13 12:59:09 -06:00
parent 1f57b85b30
commit 8e982f52ff

View file

@ -137,9 +137,10 @@ export default class RoomSublist2 extends React.Component<IProps, IState> {
let padding = RESIZE_HANDLE_HEIGHT; let padding = RESIZE_HANDLE_HEIGHT;
// this is used for calculating the max height of the whole container, // this is used for calculating the max height of the whole container,
// and takes into account whether there should be room reserved for the show less button // and takes into account whether there should be room reserved for the show less button
// when fully expanded. Note that the show more button might still be shown when not fully expanded, // when fully expanded. We cannot check against the layout's defaultVisible tile count
// but in this case it will take the space of a tile and we don't need to reserve space for it. // because there are conditions in which we need to know that the 'show more' button
if (this.numTiles > this.layout.defaultVisibleTiles) { // is present while well under the default tile limit.
if (this.numTiles > this.numVisibleTiles) {
padding += SHOW_N_BUTTON_HEIGHT; padding += SHOW_N_BUTTON_HEIGHT;
} }
return padding; return padding;