diff options
Diffstat (limited to 'app/assets')
-rw-r--r-- | app/assets/javascripts/components/components/status_list.jsx | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/app/assets/javascripts/components/components/status_list.jsx b/app/assets/javascripts/components/components/status_list.jsx index 488d42dba..633f06816 100644 --- a/app/assets/javascripts/components/components/status_list.jsx +++ b/app/assets/javascripts/components/components/status_list.jsx @@ -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; |