diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2018-04-17 04:47:46 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-04-17 04:47:46 +0900 |
| commit | fdfbd1d202180579c19e6038cfe143c463720407 (patch) | |
| tree | d06390ccb80060fd993e213f568fd1bbf1217f5f /src/client/app/mobile | |
| parent | Merge pull request #1491 from mirro-san/hotfix/contributing (diff) | |
| parent | oops (diff) | |
| download | misskey-fdfbd1d202180579c19e6038cfe143c463720407.tar.gz misskey-fdfbd1d202180579c19e6038cfe143c463720407.tar.bz2 misskey-fdfbd1d202180579c19e6038cfe143c463720407.zip | |
Merge pull request #1479 from tamaina/master
タイムラインで古い投稿から順に画面から消していく
Diffstat (limited to 'src/client/app/mobile')
| -rw-r--r-- | src/client/app/mobile/views/components/timeline.vue | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/src/client/app/mobile/views/components/timeline.vue b/src/client/app/mobile/views/components/timeline.vue index 12cc7fcf19..546270db95 100644 --- a/src/client/app/mobile/views/components/timeline.vue +++ b/src/client/app/mobile/views/components/timeline.vue @@ -37,7 +37,8 @@ export default Vue.extend({ notes: [], existMore: false, connection: null, - connectionId: null + connectionId: null, + isTop: true }; }, computed: { @@ -53,13 +54,18 @@ export default Vue.extend({ this.connection.on('follow', this.onChangeFollowing); this.connection.on('unfollow', this.onChangeFollowing); + window.addEventListener('scroll', this.onScroll); + this.fetch(); }, beforeDestroy() { this.connection.off('note', this.onNote); this.connection.off('follow', this.onChangeFollowing); this.connection.off('unfollow', this.onChangeFollowing); + this.connection.off('unfollow', this.onChangeFollowing); (this as any).os.stream.dispose(this.connectionId); + + window.removeEventListener('scroll', this.onScroll); }, methods: { fetch(cb?) { @@ -95,10 +101,18 @@ export default Vue.extend({ }); }, onNote(note) { - this.notes.unshift(note); + this.isTop = window.scrollY < 100; }, onChangeFollowing() { this.fetch(); + }, + onScroll() { + if ((this as any).os.i.clientSettings.fetchOnScroll !== false) { + const current = window.scrollY + window.innerHeight; + if (current > document.body.offsetHeight - 8) this.more(); + } + if (window.scrollY > 100) this.isTop = false; + else this.isTop = true; } } }); |