summaryrefslogtreecommitdiffstats
path: root/webapp
diff options
context:
space:
mode:
Diffstat (limited to 'webapp')
-rw-r--r--webapp/components/post_view/components/post_list.jsx16
1 files changed, 9 insertions, 7 deletions
diff --git a/webapp/components/post_view/components/post_list.jsx b/webapp/components/post_view/components/post_list.jsx
index 7550db348..3584e9923 100644
--- a/webapp/components/post_view/components/post_list.jsx
+++ b/webapp/components/post_view/components/post_list.jsx
@@ -120,17 +120,10 @@ export default class PostList extends React.Component {
break;
}
}
- this.wasAtBottom = this.isAtBottom();
if (!this.jumpToPostNode && childNodes.length > 0) {
this.jumpToPostNode = childNodes[childNodes.length - 1];
}
- // --- --------
-
- this.props.postListScrolled(this.isAtBottom());
- this.prevScrollHeight = this.refs.postlist.scrollHeight;
- this.prevOffsetTop = this.jumpToPostNode.offsetTop;
-
this.updateFloatingTimestamp();
if (!this.state.isScrolling) {
@@ -139,6 +132,15 @@ export default class PostList extends React.Component {
});
}
+ // Postpone all DOM related calculations to next frame.
+ // scrollHeight etc might return wrong data at this point
+ setTimeout(() => {
+ this.wasAtBottom = this.isAtBottom();
+ this.props.postListScrolled(this.isAtBottom());
+ this.prevScrollHeight = this.refs.postlist.scrollHeight;
+ this.prevOffsetTop = this.jumpToPostNode.offsetTop;
+ }, 0);
+
this.scrollStopAction.fireAfter(Constants.SCROLL_DELAY);
}