From 10bc83018c5c2ef56b2d1b28eb58e2c466693a39 Mon Sep 17 00:00:00 2001 From: Shpuld Shpuldson Date: Thu, 2 Nov 2017 16:26:17 +0200 Subject: [PATCH] Deregister scroll listener properly, only fetch more if timeline is visible. --- src/components/timeline/timeline.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/components/timeline/timeline.js b/src/components/timeline/timeline.js index bd80d57b..6968bc6f 100644 --- a/src/components/timeline/timeline.js +++ b/src/components/timeline/timeline.js @@ -33,7 +33,7 @@ const Timeline = { const credentials = store.state.users.currentUser.credentials const showImmediately = this.timeline.visibleStatuses.length === 0 - window.onscroll = this.scrollLoad + window.addEventListener('scroll', this.scrollLoad) timelineFetcher.fetchAndUpdate({ store, @@ -50,6 +50,9 @@ const Timeline = { this.fetchFollowers() } }, + destroyed () { + window.removeEventListener('scroll', this.scrollLoad) + }, methods: { showNewStatuses () { this.$store.commit('showNewStatuses', { timeline: this.timelineName }) @@ -80,7 +83,10 @@ const Timeline = { }, scrollLoad (e) { let height = Math.max(document.body.offsetHeight, document.body.scrollHeight) - if (this.timeline.loading === false && this.$store.state.config.autoLoad && (window.innerHeight + window.pageYOffset) >= (height - 750)) { + if (this.timeline.loading === false && + this.$store.state.config.autoLoad && + this.$el.offsetHeight > 0 && + (window.innerHeight + window.pageYOffset) >= (height - 750)) { this.fetchOlderStatuses() } }