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(); };
