mirror of
https://activitypub.software/TransFem-org/Sharkey.git
synced 2024-12-14 06:00:44 +01: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) {
|
react(viaKeyboard = false) {
|
||||||
pleaseLogin(this.$root);
|
pleaseLogin(this.$root);
|
||||||
this.blur();
|
this.blur();
|
||||||
this.$root.new(MkReactionPicker, {
|
const w = this.$root.new(MkReactionPicker, {
|
||||||
source: this.$refs.reactButton,
|
source: this.$refs.reactButton,
|
||||||
note: this.appearNote,
|
note: this.appearNote,
|
||||||
showFocus: viaKeyboard,
|
showFocus: viaKeyboard,
|
||||||
animation: !viaKeyboard
|
animation: !viaKeyboard
|
||||||
}).$once('closed', this.focus);
|
}).$once('closed', this.focus);
|
||||||
|
this.$once('hook:beforeDestroy', () => {
|
||||||
|
w.close();
|
||||||
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
reactDirectly(reaction) {
|
reactDirectly(reaction) {
|
||||||
|
@ -195,7 +198,7 @@ export default (opts: Opts = {}) => ({
|
||||||
menu(viaKeyboard = false) {
|
menu(viaKeyboard = false) {
|
||||||
if (this.openingMenu) return;
|
if (this.openingMenu) return;
|
||||||
this.openingMenu = true;
|
this.openingMenu = true;
|
||||||
this.$root.new(MkNoteMenu, {
|
const w = this.$root.new(MkNoteMenu, {
|
||||||
source: this.$refs.menuButton,
|
source: this.$refs.menuButton,
|
||||||
note: this.appearNote,
|
note: this.appearNote,
|
||||||
animation: !viaKeyboard
|
animation: !viaKeyboard
|
||||||
|
@ -203,6 +206,9 @@ export default (opts: Opts = {}) => ({
|
||||||
this.openingMenu = false;
|
this.openingMenu = false;
|
||||||
this.focus();
|
this.focus();
|
||||||
});
|
});
|
||||||
|
this.$once('hook:beforeDestroy', () => {
|
||||||
|
w.destroyDom();
|
||||||
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
toggleShowContent() {
|
toggleShowContent() {
|
||||||
|
|
|
@ -328,6 +328,9 @@ export default (opts) => ({
|
||||||
w.$once('chosen', v => {
|
w.$once('chosen', v => {
|
||||||
this.applyVisibility(v);
|
this.applyVisibility(v);
|
||||||
});
|
});
|
||||||
|
this.$once('hook:beforeDestroy', () => {
|
||||||
|
w.close();
|
||||||
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
applyVisibility(v: string) {
|
applyVisibility(v: string) {
|
||||||
|
@ -457,6 +460,9 @@ export default (opts) => ({
|
||||||
vm.$once('chosen', emoji => {
|
vm.$once('chosen', emoji => {
|
||||||
insertTextAtCursor(this.$refs.text, emoji);
|
insertTextAtCursor(this.$refs.text, emoji);
|
||||||
});
|
});
|
||||||
|
this.$once('hook:beforeDestroy', () => {
|
||||||
|
vm.close();
|
||||||
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
saveDraft() {
|
saveDraft() {
|
||||||
|
|
|
@ -59,9 +59,12 @@ export default Vue.extend({
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
onClick() {
|
onClick() {
|
||||||
this.$root.new(ImageViewer, {
|
const viewer = this.$root.new(ImageViewer, {
|
||||||
image: this.image
|
image: this.image
|
||||||
});
|
});
|
||||||
|
this.$once('hook:beforeDestroy', () => {
|
||||||
|
viewer.close();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -112,10 +112,13 @@ export default Vue.extend({
|
||||||
},
|
},
|
||||||
|
|
||||||
menu() {
|
menu() {
|
||||||
this.$root.new(XUserMenu, {
|
const w = this.$root.new(XUserMenu, {
|
||||||
source: this.$refs.menu,
|
source: this.$refs.menu,
|
||||||
user: this.user
|
user: this.user
|
||||||
});
|
});
|
||||||
|
this.$once('hook:beforeDestroy', () => {
|
||||||
|
w.destroyDom();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -53,10 +53,13 @@ export default Vue.extend({
|
||||||
start = videoTag.currentTime
|
start = videoTag.currentTime
|
||||||
videoTag.pause()
|
videoTag.pause()
|
||||||
}
|
}
|
||||||
this.$root.new(MkMediaVideoDialog, {
|
const viewer = this.$root.new(MkMediaVideoDialog, {
|
||||||
video: this.video,
|
video: this.video,
|
||||||
start,
|
start,
|
||||||
})
|
});
|
||||||
|
this.$once('hook:beforeDestroy', () => {
|
||||||
|
viewer.close();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
|
@ -106,10 +106,13 @@ export default Vue.extend({
|
||||||
},
|
},
|
||||||
|
|
||||||
menu() {
|
menu() {
|
||||||
this.$root.new(XUserMenu, {
|
const w = this.$root.new(XUserMenu, {
|
||||||
source: this.$refs.menu,
|
source: this.$refs.menu,
|
||||||
user: this.user
|
user: this.user
|
||||||
});
|
});
|
||||||
|
this.$once('hook:beforeDestroy', () => {
|
||||||
|
w.destroyDom();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue