@@ -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;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
});
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user