From 50baad1fd0e21b90a5392df671f2a997bc8ce6ca Mon Sep 17 00:00:00 2001
From: tamaina <tamaina@hotmail.co.jp>
Date: Sun, 15 Apr 2018 20:57:37 +0900
Subject: [PATCH] Update timeline.vue

---
 .../app/mobile/views/components/timeline.vue      | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/src/client/app/mobile/views/components/timeline.vue b/src/client/app/mobile/views/components/timeline.vue
index 132b5216e3..15a7b5344e 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,6 +54,8 @@ export default Vue.extend({
 		this.connection.on('follow', this.onChangeFollowing);
 		this.connection.on('unfollow', this.onChangeFollowing);
 
+		window.addEventListener('scroll', this.onScroll);
+
 		this.fetch();
 	},
 	beforeDestroy() {
@@ -95,11 +98,19 @@ export default Vue.extend({
 			});
 		},
 		onNote(note) {
-			this.notes.pop();
+			if (this.isTop) this.notes.pop();
 			this.notes.unshift(note);
 		},
 		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;
 		}
 	}
 });