diff --git a/src/client/components/post-form.vue b/src/client/components/post-form.vue
index a15e112786..1fe5cc808b 100644
--- a/src/client/components/post-form.vue
+++ b/src/client/components/post-form.vue
@@ -612,10 +612,11 @@ export default defineComponent({
 		},
 
 		async insertEmoji(ev) {
-			os.modal(defineAsyncComponent(() => import('@/components/emoji-picker.vue')), {}, emoji => {
-				insertTextAtCursor(this.$refs.text, emoji);
-			}, {
+			os.modal(defineAsyncComponent(() => import('@/components/emoji-picker.vue')), {}, {}, {
 				source: ev.currentTarget || ev.target
+			}).then(emoji => {
+				if (emoji == null) return;
+				insertTextAtCursor(this.$refs.text, emoji);
 			});
 		},
 
diff --git a/src/client/pages/messaging/messaging-room.form.vue b/src/client/pages/messaging/messaging-room.form.vue
index 90783dab8c..ca601bf063 100644
--- a/src/client/pages/messaging/messaging-room.form.vue
+++ b/src/client/pages/messaging/messaging-room.form.vue
@@ -222,11 +222,11 @@ export default defineComponent({
 		},
 
 		async insertEmoji(ev) {
-			const vm = os.modal(await import('@/components/emoji-picker.vue'), {
+			os.modal(await import('@/components/emoji-picker.vue'), {}, {}, {
 				source: ev.currentTarget || ev.target
-			}).$once('chosen', emoji => {
+			}).then(emoji => {
+				if (emoji == null) return;
 				insertTextAtCursor(this.$refs.text, emoji);
-				vm.close();
 			});
 		}
 	}
diff --git a/src/client/pages/my-settings/reaction.vue b/src/client/pages/my-settings/reaction.vue
index c64c54eff6..40aa5e9cce 100644
--- a/src/client/pages/my-settings/reaction.vue
+++ b/src/client/pages/my-settings/reaction.vue
@@ -70,8 +70,7 @@ export default defineComponent({
 		},
 
 		async chooseEmoji(ev) {
-			os.modal(await import('@/components/emoji-picker.vue'), {
-			}, {}, {
+			os.modal(await import('@/components/emoji-picker.vue'), {}, {}, {
 				source: ev.currentTarget || ev.target
 			}).then(emoji => {
 				if (emoji == null) return;