diff options
Diffstat (limited to 'webapp')
-rw-r--r-- | webapp/components/post_view/components/post_list.jsx | 16 |
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); } |