Only show jumpToReadMarker bar when RM !== RR

If RM !== RR, use the pos. of the RM to determine whether it is visible, as before.
pull/21833/head
Luke Barnard 2017-04-27 14:03:54 +01:00
parent 0e880f7971
commit 8f7359fce1
2 changed files with 11 additions and 7 deletions

View File

@ -1276,13 +1276,7 @@ module.exports = React.createClass({
return;
}
var pos = this.refs.messagePanel.getReadMarkerPosition();
// we want to show the bar if the read-marker is off the top of the
// screen.
// If pos is null, the event might not be paginated, so show the unread bar!
var showBar = pos < 0 || pos === null;
const showBar = this.refs.messagePanel.canJumpToReadMarker();
if (this.state.showTopUnreadMessagesBar != showBar) {
this.setState({showTopUnreadMessagesBar: showBar},
this.onChildResize);

View File

@ -766,6 +766,16 @@ var TimelinePanel = React.createClass({
return null;
},
canJumpToReadMarker: function() {
// Only show jump bar if RR !== RM. If they are the same, there are only fully
// read messages and unread messages. We already have a badge count and the bottom
// bar to jump to "live" when we have unread messages.
// We want to show the bar if the read-marker is off the top of the screen.
// Also, if pos === null, the event might not be paginated - show the unread bar
const pos = this.getReadMarkerPosition();
return this.state.readMarkerEventId !== this._getCurrentReadReceipt() && (pos < 0 || pos === null);
},
/**
* called by the parent component when PageUp/Down/etc is pressed.
*