Fix #5943
This commit is contained in:
		
							parent
							
								
									b8e155ab40
								
							
						
					
					
						commit
						ff3a97f6cf
					
				
					 2 changed files with 11 additions and 7 deletions
				
			
		| 
						 | 
				
			
			@ -53,6 +53,7 @@ export default Vue.extend({
 | 
			
		|||
		return {
 | 
			
		||||
			u: null,
 | 
			
		||||
			show: false,
 | 
			
		||||
			closed: false,
 | 
			
		||||
			top: 0,
 | 
			
		||||
			left: 0,
 | 
			
		||||
		};
 | 
			
		||||
| 
						 | 
				
			
			@ -68,6 +69,7 @@ export default Vue.extend({
 | 
			
		|||
				{ userId: this.user };
 | 
			
		||||
 | 
			
		||||
			this.$root.api('users/show', query).then(user => {
 | 
			
		||||
				if (this.closed) return;
 | 
			
		||||
				this.u = user;
 | 
			
		||||
				this.show = true;
 | 
			
		||||
			});
 | 
			
		||||
| 
						 | 
				
			
			@ -83,6 +85,7 @@ export default Vue.extend({
 | 
			
		|||
 | 
			
		||||
	methods: {
 | 
			
		||||
		close() {
 | 
			
		||||
			this.closed = true;
 | 
			
		||||
			this.show = false;
 | 
			
		||||
			if (this.$refs.content) (this.$refs.content as any).style.pointerEvents = 'none';
 | 
			
		||||
		}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -39,11 +39,15 @@ export default {
 | 
			
		|||
				self.hideTimer = setTimeout(self.close, 500);
 | 
			
		||||
			});
 | 
			
		||||
 | 
			
		||||
			self.checkTimer = setInterval(() => {
 | 
			
		||||
				if (!document.body.contains(el)) self.close();
 | 
			
		||||
			}, 1000);
 | 
			
		||||
 | 
			
		||||
			document.body.appendChild(self.tag.$el);
 | 
			
		||||
 | 
			
		||||
			self.checkTimer = setInterval(() => {
 | 
			
		||||
				if (!document.body.contains(el)) {
 | 
			
		||||
					clearTimeout(self.showTimer);
 | 
			
		||||
					clearTimeout(self.hideTimer);
 | 
			
		||||
					self.close();
 | 
			
		||||
				}
 | 
			
		||||
			}, 1000);
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		el.addEventListener('mouseover', () => {
 | 
			
		||||
| 
						 | 
				
			
			@ -66,9 +70,6 @@ export default {
 | 
			
		|||
 | 
			
		||||
	unbind(el, binding, vn) {
 | 
			
		||||
		const self = el._userPreviewDirective_;
 | 
			
		||||
		clearTimeout(self.showTimer);
 | 
			
		||||
		clearTimeout(self.hideTimer);
 | 
			
		||||
		clearInterval(self.checkTimer);
 | 
			
		||||
		self.close();
 | 
			
		||||
	}
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue