mirror of
				https://codeberg.org/yeentown/barkey.git
				synced 2025-11-04 15:34:13 +00:00 
			
		
		
		
	閉じずに残ってしまうメニューなどの修正 (#5496)
* Fix: ページ移動等してもメニュー等が閉じずに残ってしまう * Fix: ページ移動してもメディアビューワーが残ってしまう
This commit is contained in:
		
							parent
							
								
									d17c6adba4
								
							
						
					
					
						commit
						a85f6edd8a
					
				
					 6 changed files with 31 additions and 7 deletions
				
			
		| 
						 | 
				
			
			@ -143,12 +143,15 @@ export default (opts: Opts = {}) => ({
 | 
			
		|||
		react(viaKeyboard = false) {
 | 
			
		||||
			pleaseLogin(this.$root);
 | 
			
		||||
			this.blur();
 | 
			
		||||
			this.$root.new(MkReactionPicker, {
 | 
			
		||||
			const w = this.$root.new(MkReactionPicker, {
 | 
			
		||||
				source: this.$refs.reactButton,
 | 
			
		||||
				note: this.appearNote,
 | 
			
		||||
				showFocus: viaKeyboard,
 | 
			
		||||
				animation: !viaKeyboard
 | 
			
		||||
			}).$once('closed', this.focus);
 | 
			
		||||
			this.$once('hook:beforeDestroy', () => {
 | 
			
		||||
				w.close();
 | 
			
		||||
			});
 | 
			
		||||
		},
 | 
			
		||||
 | 
			
		||||
		reactDirectly(reaction) {
 | 
			
		||||
| 
						 | 
				
			
			@ -195,7 +198,7 @@ export default (opts: Opts = {}) => ({
 | 
			
		|||
		menu(viaKeyboard = false) {
 | 
			
		||||
			if (this.openingMenu) return;
 | 
			
		||||
			this.openingMenu = true;
 | 
			
		||||
			this.$root.new(MkNoteMenu, {
 | 
			
		||||
			const w = this.$root.new(MkNoteMenu, {
 | 
			
		||||
				source: this.$refs.menuButton,
 | 
			
		||||
				note: this.appearNote,
 | 
			
		||||
				animation: !viaKeyboard
 | 
			
		||||
| 
						 | 
				
			
			@ -203,6 +206,9 @@ export default (opts: Opts = {}) => ({
 | 
			
		|||
				this.openingMenu = false;
 | 
			
		||||
				this.focus();
 | 
			
		||||
			});
 | 
			
		||||
			this.$once('hook:beforeDestroy', () => {
 | 
			
		||||
				w.destroyDom();
 | 
			
		||||
			});
 | 
			
		||||
		},
 | 
			
		||||
 | 
			
		||||
		toggleShowContent() {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -328,6 +328,9 @@ export default (opts) => ({
 | 
			
		|||
			w.$once('chosen', v => {
 | 
			
		||||
				this.applyVisibility(v);
 | 
			
		||||
			});
 | 
			
		||||
			this.$once('hook:beforeDestroy', () => {
 | 
			
		||||
				w.close();
 | 
			
		||||
			});
 | 
			
		||||
		},
 | 
			
		||||
 | 
			
		||||
		applyVisibility(v: string) {
 | 
			
		||||
| 
						 | 
				
			
			@ -457,6 +460,9 @@ export default (opts) => ({
 | 
			
		|||
			vm.$once('chosen', emoji => {
 | 
			
		||||
				insertTextAtCursor(this.$refs.text, emoji);
 | 
			
		||||
			});
 | 
			
		||||
			this.$once('hook:beforeDestroy', () => {
 | 
			
		||||
				vm.close();
 | 
			
		||||
			});
 | 
			
		||||
		},
 | 
			
		||||
 | 
			
		||||
		saveDraft() {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -59,9 +59,12 @@ export default Vue.extend({
 | 
			
		|||
	},
 | 
			
		||||
	methods: {
 | 
			
		||||
		onClick() {
 | 
			
		||||
			this.$root.new(ImageViewer, {
 | 
			
		||||
			const viewer = this.$root.new(ImageViewer, {
 | 
			
		||||
				image: this.image
 | 
			
		||||
			});
 | 
			
		||||
			this.$once('hook:beforeDestroy', () => {
 | 
			
		||||
				viewer.close();
 | 
			
		||||
			});
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
});
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -112,10 +112,13 @@ export default Vue.extend({
 | 
			
		|||
		},
 | 
			
		||||
 | 
			
		||||
		menu() {
 | 
			
		||||
			this.$root.new(XUserMenu, {
 | 
			
		||||
			const w = this.$root.new(XUserMenu, {
 | 
			
		||||
				source: this.$refs.menu,
 | 
			
		||||
				user: this.user
 | 
			
		||||
			});
 | 
			
		||||
			this.$once('hook:beforeDestroy', () => {
 | 
			
		||||
				w.destroyDom();
 | 
			
		||||
			});
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
});
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -53,10 +53,13 @@ export default Vue.extend({
 | 
			
		|||
				start = videoTag.currentTime
 | 
			
		||||
				videoTag.pause()
 | 
			
		||||
			}
 | 
			
		||||
			this.$root.new(MkMediaVideoDialog, {
 | 
			
		||||
			const viewer = this.$root.new(MkMediaVideoDialog, {
 | 
			
		||||
				video: this.video,
 | 
			
		||||
				start,
 | 
			
		||||
			})
 | 
			
		||||
			});
 | 
			
		||||
			this.$once('hook:beforeDestroy', () => {
 | 
			
		||||
				viewer.close();
 | 
			
		||||
			});
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
})
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -106,10 +106,13 @@ export default Vue.extend({
 | 
			
		|||
		},
 | 
			
		||||
 | 
			
		||||
		menu() {
 | 
			
		||||
			this.$root.new(XUserMenu, {
 | 
			
		||||
			const w = this.$root.new(XUserMenu, {
 | 
			
		||||
				source: this.$refs.menu,
 | 
			
		||||
				user: this.user
 | 
			
		||||
			});
 | 
			
		||||
			this.$once('hook:beforeDestroy', () => {
 | 
			
		||||
				w.destroyDom();
 | 
			
		||||
			});
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
});
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue