diff --git a/app/assets/javascripts/discourse/controllers/topic.js.es6 b/app/assets/javascripts/discourse/controllers/topic.js.es6 index 59c3a843388..8c8d2a4f428 100644 --- a/app/assets/javascripts/discourse/controllers/topic.js.es6 +++ b/app/assets/javascripts/discourse/controllers/topic.js.es6 @@ -693,7 +693,8 @@ export default Ember.Controller.extend(SelectedPostsCount, BufferedContent, { const $body = $('body'); const elemId = `#post_${post.get('post_number')}`; const $elem = $(elemId).closest('.post-cloak'); - const distToElement = $body.scrollTop() - $elem.position().top; + const elemPos = $elem.position(); + const distToElement = elemPos ? $body.scrollTop() - elemPos.top : 0; postStream.prependMore().then(function() { Em.run.next(function () { diff --git a/app/assets/javascripts/discourse/models/post-stream.js.es6 b/app/assets/javascripts/discourse/models/post-stream.js.es6 index 58640051864..8cfeda00a02 100644 --- a/app/assets/javascripts/discourse/models/post-stream.js.es6 +++ b/app/assets/javascripts/discourse/models/post-stream.js.es6 @@ -310,7 +310,6 @@ export default RestModel.extend({ if (Ember.isEmpty(postIds)) { return Ember.RSVP.resolve(); } this.set('loadingBelow', true); - const postsWithPlaceholders = this.get('postsWithPlaceholders'); postsWithPlaceholders.appending(postIds); return this.findPostsByIds(postIds).then(posts => { @@ -483,7 +482,11 @@ export default RestModel.extend({ this.get('stream').addObject(postId); if (loadedAllPosts) { this.set('loadingLastPost', true); - this.appendMore().finally(()=> this.set('loadingLastPost', true)); + this.findPostsByIds([postId]).then(posts => { + posts.forEach(p => this.appendPost(p)); + }).finally(() => { + this.set('loadingLastPost', false); + }); } } },