From 1823cf435a30af3d54e8b2a072df6f8d6fa59c6d Mon Sep 17 00:00:00 2001
From: Eugen Rochko <eugen@zeonfederated.com>
Date: Wed, 11 Oct 2017 19:21:44 +0200
Subject: [PATCH] In thread view, only scroll first update, scroll to
 replied-to post (#5322)

---
 app/javascript/mastodon/features/status/index.js | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/app/javascript/mastodon/features/status/index.js b/app/javascript/mastodon/features/status/index.js
index eed8ea2602..7ad3a7644c 100644
--- a/app/javascript/mastodon/features/status/index.js
+++ b/app/javascript/mastodon/features/status/index.js
@@ -78,6 +78,7 @@ export default class Status extends ImmutablePureComponent {
 
   componentWillReceiveProps (nextProps) {
     if (nextProps.params.statusId !== this.props.params.statusId && nextProps.params.statusId) {
+      this._scrolledIntoView = false;
       this.props.dispatch(fetchStatus(nextProps.params.statusId));
     }
   }
@@ -240,11 +241,17 @@ export default class Status extends ImmutablePureComponent {
   }
 
   componentDidUpdate () {
+    if (this._scrolledIntoView) {
+      return;
+    }
+
     const { status, ancestorsIds } = this.props;
 
     if (status && ancestorsIds && ancestorsIds.size > 0) {
-      const element = this.node.querySelectorAll('.focusable')[ancestorsIds.size];
-      element.scrollIntoView();
+      const element = this.node.querySelectorAll('.focusable')[ancestorsIds.size - 1];
+
+      element.scrollIntoView(true);
+      this._scrolledIntoView = true;
     }
   }
 
-- 
GitLab