diff options
Diffstat (limited to 'javascript/app/components/infinite-list.js')
-rw-r--r-- | javascript/app/components/infinite-list.js | 50 |
1 files changed, 0 insertions, 50 deletions
diff --git a/javascript/app/components/infinite-list.js b/javascript/app/components/infinite-list.js deleted file mode 100644 index 02e1943..0000000 --- a/javascript/app/components/infinite-list.js +++ /dev/null @@ -1,50 +0,0 @@ -import Component from '@ember/component'; -import { run } from '@ember/runloop'; -import { observer } from '@ember/object'; - -let pageNumber; -let updating = false; - -function initialize(component) { - component.set('renderedElements',component.get('elements').slice(0,component.get('perPage'))); - pageNumber = 1; -} - -export default Component.extend({ - renderedElements : [], - init() { - this._super(...arguments); - initialize(this); - }, - elementsObserver : observer('elements',function() { - initialize(this); - const containerElement = document.getElementById(this.get('containerElementId')); - if(containerElement) { - containerElement.scrollTop = 0; - } - }), - didInsertElement() { - const containerElement = document.getElementById(this.get('containerElementId')); - if(containerElement) { - const component = this; - containerElement.onscroll = function() { - const perPage = component.get('perPage'); - const elements = component.get('elements'); - - if(!updating && - (pageNumber * perPage < elements.length) && - (containerElement.scrollTop + containerElement.offsetHeight - > component.element.offsetHeight - 100)) { - - updating = true; - run.next(component,() => { - const newElements = elements.slice(pageNumber * perPage,(pageNumber + 1) * perPage); - component.get('renderedElements').pushObjects(newElements); - pageNumber ++; - updating = false; - }); - } - } - } - } -}); |