閉じずに残ってしまうメニューなどの修正 (#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
		Add a link
		
	
		Reference in a new issue