This is an automated email from the ASF dual-hosted git repository.

voidmatcha pushed a commit to branch 
branch-voidmatcha-assistant-integration-temp
in repository https://gitbox.apache.org/repos/asf/zeppelin.git

commit d72d9689cc431635a15bea43426d47d6f7bb5b23
Author: YONGJAE LEE <[email protected]>
AuthorDate: Wed Oct 14 01:00:34 2026 +0900

    [ZEPPELIN-6746] Do not send on the Enter that confirms an IME composition 
in Safari
---
 .../src/entities/assistant/ui/AssistantComposer.spec.tsx               | 1 +
 .../zeppelin-react/src/entities/assistant/ui/AssistantComposer.tsx     | 3 ++-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git 
a/zeppelin-web-angular/projects/zeppelin-react/src/entities/assistant/ui/AssistantComposer.spec.tsx
 
b/zeppelin-web-angular/projects/zeppelin-react/src/entities/assistant/ui/AssistantComposer.spec.tsx
index e643465d29..faf8004c7f 100644
--- 
a/zeppelin-web-angular/projects/zeppelin-react/src/entities/assistant/ui/AssistantComposer.spec.tsx
+++ 
b/zeppelin-web-angular/projects/zeppelin-react/src/entities/assistant/ui/AssistantComposer.spec.tsx
@@ -78,6 +78,7 @@ describe('AssistantComposer', () => {
     const { onSubmit } = renderComposer({ value: '질문' });
     expect(pressEnter({ shiftKey: true })).toBe(true);
     expect(pressEnter({ isComposing: true })).toBe(true);
+    expect(pressEnter({ keyCode: 229 })).toBe(true);
     expect(onSubmit).not.toHaveBeenCalled();
     expect(pressEnter()).toBe(false);
     expect(onSubmit).toHaveBeenCalledWith('질문');
diff --git 
a/zeppelin-web-angular/projects/zeppelin-react/src/entities/assistant/ui/AssistantComposer.tsx
 
b/zeppelin-web-angular/projects/zeppelin-react/src/entities/assistant/ui/AssistantComposer.tsx
index 95b585874b..d0ede4c809 100644
--- 
a/zeppelin-web-angular/projects/zeppelin-react/src/entities/assistant/ui/AssistantComposer.tsx
+++ 
b/zeppelin-web-angular/projects/zeppelin-react/src/entities/assistant/ui/AssistantComposer.tsx
@@ -49,7 +49,8 @@ export const AssistantComposer = ({
   };
   const handleKeyDown = (event: KeyboardEvent<HTMLTextAreaElement>) => {
     // Enter that confirms an IME composition (such as Korean or Japanese 
input) is not a request to send.
-    if (event.key !== 'Enter' || event.shiftKey || 
event.nativeEvent.isComposing) return;
+    // Safari fires compositionend before that Enter, so it arrives with 
isComposing false and keyCode 229.
+    if (event.key !== 'Enter' || event.shiftKey || 
event.nativeEvent.isComposing || event.keyCode === 229) return;
     event.preventDefault();
     submit();
   };

Reply via email to