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',
|
'focus .send-message': 'focusBottomBar',
|
||||||
'change .file-input': 'toggleMicrophone',
|
'change .file-input': 'toggleMicrophone',
|
||||||
'blur .send-message': 'unfocusBottomBar',
|
'blur .send-message': 'unfocusBottomBar',
|
||||||
'loadMore .message-list': 'fetchMessages',
|
'loadMore .message-list': 'loadMoreMessages',
|
||||||
'newOffscreenMessage .message-list': 'addScrollDownButtonWithCount',
|
'newOffscreenMessage .message-list': 'addScrollDownButtonWithCount',
|
||||||
'atBottom .message-list': 'hideScrollDownButton',
|
'atBottom .message-list': 'hideScrollDownButton',
|
||||||
'farFromBottom .message-list': 'addScrollDownButton',
|
'farFromBottom .message-list': 'addScrollDownButton',
|
||||||
|
@ -312,6 +312,27 @@
|
||||||
this.$messageField.focus();
|
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() {
|
fetchMessages: function() {
|
||||||
console.log('fetchMessages');
|
console.log('fetchMessages');
|
||||||
this.$('.bar-container').show();
|
this.$('.bar-container').show();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue