Keep scroll position when scrolled down and new content is added
This commit is contained in:
		
							parent
							
								
									23fc424b7a
								
							
						
					
					
						commit
						4a6cc46e81
					
				
					 1 changed files with 12 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -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…
	
	Add table
		
		Reference in a new issue