From 64d961bd9861e6b709ded015a3b3cf4f0806ecd0 Mon Sep 17 00:00:00 2001 From: lucaronin Date: Mon, 4 May 2026 01:18:28 +0200 Subject: [PATCH] fix(editor): type ime cancel listener --- src/components/useEditorComposing.ts | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/components/useEditorComposing.ts b/src/components/useEditorComposing.ts index eac89a1d..c2b7ffe3 100644 --- a/src/components/useEditorComposing.ts +++ b/src/components/useEditorComposing.ts @@ -93,17 +93,27 @@ export function useEditorComposing< finishComposing() } + const handleCompositionCancel: EventListener = (event) => { + if (event instanceof CompositionEvent) { + handleCompositionEnd(event) + return + } + + if (!composingRef.current) return + finishComposing() + } + document.addEventListener('compositionstart', handleCompositionStart, true) document.addEventListener('compositionupdate', handleCompositionUpdate, true) document.addEventListener('compositionend', handleCompositionEnd, true) - document.addEventListener('compositioncancel', handleCompositionEnd, true) + document.addEventListener('compositioncancel', handleCompositionCancel, true) return () => { clearSettleTimeout() document.removeEventListener('compositionstart', handleCompositionStart, true) document.removeEventListener('compositionupdate', handleCompositionUpdate, true) document.removeEventListener('compositionend', handleCompositionEnd, true) - document.removeEventListener('compositioncancel', handleCompositionEnd, true) + document.removeEventListener('compositioncancel', handleCompositionCancel, true) } }, [editorElement])