summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/client/app/common/scripts/note-mixin.ts10
-rw-r--r--src/client/app/common/scripts/post-form.ts6
-rw-r--r--src/client/app/common/views/components/media-image.vue5
-rw-r--r--src/client/app/common/views/deck/deck.user-column.vue5
-rw-r--r--src/client/app/desktop/views/components/media-video.vue7
-rw-r--r--src/client/app/desktop/views/home/user/user.header.vue5
6 files changed, 31 insertions, 7 deletions
diff --git a/src/client/app/common/scripts/note-mixin.ts b/src/client/app/common/scripts/note-mixin.ts
index 9e1c81e2b7..54e90714e7 100644
--- a/src/client/app/common/scripts/note-mixin.ts
+++ b/src/client/app/common/scripts/note-mixin.ts
@@ -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() {
diff --git a/src/client/app/common/scripts/post-form.ts b/src/client/app/common/scripts/post-form.ts
index 9b155f7fcb..496782fd30 100644
--- a/src/client/app/common/scripts/post-form.ts
+++ b/src/client/app/common/scripts/post-form.ts
@@ -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() {
diff --git a/src/client/app/common/views/components/media-image.vue b/src/client/app/common/views/components/media-image.vue
index 6db4b40dd8..b8b164aed0 100644
--- a/src/client/app/common/views/components/media-image.vue
+++ b/src/client/app/common/views/components/media-image.vue
@@ -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();
+ });
}
}
});
diff --git a/src/client/app/common/views/deck/deck.user-column.vue b/src/client/app/common/views/deck/deck.user-column.vue
index 1383ff5aef..dd64dd1c12 100644
--- a/src/client/app/common/views/deck/deck.user-column.vue
+++ b/src/client/app/common/views/deck/deck.user-column.vue
@@ -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();
+ });
}
}
});
diff --git a/src/client/app/desktop/views/components/media-video.vue b/src/client/app/desktop/views/components/media-video.vue
index 7898c47175..c53da0f49e 100644
--- a/src/client/app/desktop/views/components/media-video.vue
+++ b/src/client/app/desktop/views/components/media-video.vue
@@ -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();
+ });
}
}
})
diff --git a/src/client/app/desktop/views/home/user/user.header.vue b/src/client/app/desktop/views/home/user/user.header.vue
index 7172803ba7..43a0a782b4 100644
--- a/src/client/app/desktop/views/home/user/user.header.vue
+++ b/src/client/app/desktop/views/home/user/user.header.vue
@@ -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();
+ });
}
}
});