Ghost/ghost/admin/mixins/pagination-view-infinite-scroll.js
Matt Enlow ab7951ea16 Emberify Posts mobile transitions
Closes #3950

- Fixed up event attachment and removal in a few mixins
- Renamed content-list-content-view to something more understandable
- simplify transition from posts.index to posts.post
2014-09-10 20:58:10 -06:00

40 lines
1.2 KiB
JavaScript

var PaginationViewInfiniteScrollMixin = Ember.Mixin.create({
/**
* Determines if we are past a scroll point where we need to fetch the next page
* @param event The scroll event
*/
checkScroll: function (event) {
var element = event.target,
triggerPoint = 100,
controller = this.get('controller'),
isLoading = controller.get('isLoading');
// If we haven't passed our threshold or we are already fetching content, exit
if (isLoading || (element.scrollTop + element.clientHeight + triggerPoint <= element.scrollHeight)) {
return;
}
controller.send('loadNextPage');
},
/**
* Bind to the scroll event once the element is in the DOM
*/
attachCheckScroll: function () {
var el = this.$();
el.on('scroll', Ember.run.bind(this, this.checkScroll));
}.on('didInsertElement'),
/**
* Unbind from the scroll event when the element is no longer in the DOM
*/
detachCheckScroll: function () {
var el = this.$();
el.off('scroll');
}.on('willDestroyElement')
});
export default PaginationViewInfiniteScrollMixin;