Update the scroll position when 'fetch more messages' is complete
FREEBIE
This commit is contained in:
parent
3dbb21c53c
commit
0b6d5de753
1 changed files with 22 additions and 1 deletions
|
@ -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();
|
||||
|
|
Loading…
Add table
Reference in a new issue