Update the scroll position when 'fetch more messages' is complete

FREEBIE
This commit is contained in:
Scott Nonnenberg 2017-06-01 11:30:14 -07:00
parent 3dbb21c53c
commit 0b6d5de753

View file

@ -156,7 +156,7 @@
'focus .send-message': 'focusBottomBar',
'change .file-input': 'toggleMicrophone',
'blur .send-message': 'unfocusBottomBar',
'loadMore .message-list': 'fetchMessages',
'loadMore .message-list': 'loadMoreMessages',
'newOffscreenMessage .message-list': 'addScrollDownButtonWithCount',
'atBottom .message-list': 'hideScrollDownButton',
'farFromBottom .message-list': 'addScrollDownButton',
@ -312,6 +312,27 @@
this.$messageField.focus();
},
loadMoreMessages: function() {
if (this.inProgressFetch) {
return;
}
this.view.measureScrollPosition();
var startingHeight = this.view.scrollHeight;
this.fetchMessages().then(function() {
// We delay this work to let scrolling/layout settle down first
setTimeout(function() {
this.view.measureScrollPosition();
var endingHeight = this.view.scrollHeight;
var delta = endingHeight - startingHeight;
var newScrollPosition = this.view.scrollPosition + delta - this.view.
this.view.$el.scrollTop(newScrollPosition);
}.bind(this), 1);
}.bind(this));
},
fetchMessages: function() {
console.log('fetchMessages');
this.$('.bar-container').show();