Browse Source

Keep scroll position when scrolled down and new content is added

closed-social-glitch-2
Eugen Rochko 7 years ago
parent
commit
4a6cc46e81
1 changed files with 12 additions and 0 deletions
  1. +12
    -0
      app/assets/javascripts/components/components/status_list.jsx

+ 12
- 0
app/assets/javascripts/components/components/status_list.jsx View File

@ -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…
Cancel
Save