forked from cybrespace/mastodon
Keep scroll position when scrolled down and new content is added
This commit is contained in:
parent
23fc424b7a
commit
4a6cc46e81
|
@ -38,11 +38,23 @@ const StatusList = React.createClass({
|
|||
handleScroll (e) {
|
||||
const { scrollTop, scrollHeight, clientHeight } = e.target;
|
||||
|
||||
this._oldScrollPosition = scrollHeight - scrollTop;
|
||||
|
||||
if (scrollTop === scrollHeight - clientHeight) {
|
||||
this.props.onScrollToBottom();
|
||||
}
|
||||
},
|
||||
|
||||
componentDidUpdate (prevProps) {
|
||||
if (prevProps.statusIds.size < this.props.statusIds.size && this._oldScrollPosition) {
|
||||
const node = ReactDOM.findDOMNode(this);
|
||||
|
||||
if (node.scrollTop > 0) {
|
||||
node.scrollTop = node.scrollHeight - this._oldScrollPosition;
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
render () {
|
||||
const { statusIds, onScrollToBottom, trackScroll } = this.props;
|
||||
|
||||
|
|
Loading…
Reference in New Issue