From 6dd2e9fc0b1eeea6b5f04ccac93ccfab658f976d Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Thu, 4 Jul 2024 13:14:49 +0900 Subject: refactor(frontend): refactor popup api and make sure call dispose callback Close #14122 --- .../frontend/src/components/MkReactionsViewer.reaction.vue | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'packages/frontend/src/components/MkReactionsViewer.reaction.vue') diff --git a/packages/frontend/src/components/MkReactionsViewer.reaction.vue b/packages/frontend/src/components/MkReactionsViewer.reaction.vue index c41811febe..26223364ab 100644 --- a/packages/frontend/src/components/MkReactionsViewer.reaction.vue +++ b/packages/frontend/src/components/MkReactionsViewer.reaction.vue @@ -114,10 +114,12 @@ async function menu(ev) { text: i18n.ts.info, icon: 'ti ti-info-circle', action: async () => { - os.popup(MkCustomEmojiDetailedDialog, { + const { dispose } = os.popup(MkCustomEmojiDetailedDialog, { emoji: await misskeyApiGet('emoji', { name: props.reaction.replace(/:/g, '').replace(/@\./, ''), }), + }, { + closed: () => dispose(), }); }, }], ev.currentTarget ?? ev.target); @@ -129,7 +131,9 @@ function anime() { const rect = buttonEl.value.getBoundingClientRect(); const x = rect.left + 16; const y = rect.top + (buttonEl.value.offsetHeight / 2); - os.popup(MkReactionEffect, { reaction: props.reaction, x, y }, {}, 'end'); + const { dispose } = os.popup(MkReactionEffect, { reaction: props.reaction, x, y }, { + end: () => dispose(), + }); } watch(() => props.count, (newCount, oldCount) => { @@ -151,13 +155,15 @@ if (!mock) { const users = reactions.map(x => x.user); - os.popup(XDetails, { + const { dispose } = os.popup(XDetails, { showing, reaction: props.reaction, users, count: props.count, targetElement: buttonEl.value, - }, {}, 'closed'); + }, { + closed: () => dispose(), + }); }, 100); } -- cgit v1.2.3-freya