about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--app/assets/javascripts/components/components/status_list.jsx12
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;