diff --git a/packages/ui/src/ui-component/dialog/ExportAsTemplateDialog.jsx b/packages/ui/src/ui-component/dialog/ExportAsTemplateDialog.jsx index 53951768237..2e04bf719c6 100644 --- a/packages/ui/src/ui-component/dialog/ExportAsTemplateDialog.jsx +++ b/packages/ui/src/ui-component/dialog/ExportAsTemplateDialog.jsx @@ -82,7 +82,9 @@ const ExportAsTemplateDialog = ({ show, dialogProps, onCancel }) => { } const handleUsecaseInputKeyDown = (event) => { - if (event.key === 'Enter' && usecaseInput.trim()) { + // Check if IME composition is in progress + const isIMEComposition = event.isComposing || event.keyCode === 229 + if (event.key === 'Enter' && !isIMEComposition && usecaseInput.trim()) { event.preventDefault() if (!usecases.includes(usecaseInput)) { setUsecases([...usecases, usecaseInput]) diff --git a/packages/ui/src/ui-component/dialog/SaveChatflowDialog.jsx b/packages/ui/src/ui-component/dialog/SaveChatflowDialog.jsx index e567132899f..e1230799fd8 100644 --- a/packages/ui/src/ui-component/dialog/SaveChatflowDialog.jsx +++ b/packages/ui/src/ui-component/dialog/SaveChatflowDialog.jsx @@ -41,7 +41,9 @@ const SaveChatflowDialog = ({ show, dialogProps, onCancel, onConfirm }) => { value={chatflowName} onChange={(e) => setChatflowName(e.target.value)} onKeyDown={(e) => { - if (isReadyToSave && e.key === 'Enter') onConfirm(e.target.value) + // Check if IME composition is in progress + const isIMEComposition = e.isComposing || e.keyCode === 229 + if (isReadyToSave && e.key === 'Enter' && !isIMEComposition) onConfirm(e.target.value) }} /> diff --git a/packages/ui/src/ui-component/dialog/TagDialog.jsx b/packages/ui/src/ui-component/dialog/TagDialog.jsx index 82c35dde62b..ad91a0cdea9 100644 --- a/packages/ui/src/ui-component/dialog/TagDialog.jsx +++ b/packages/ui/src/ui-component/dialog/TagDialog.jsx @@ -16,7 +16,9 @@ const TagDialog = ({ isOpen, dialogProps, onClose, onSubmit }) => { } const handleInputKeyDown = (event) => { - if (event.key === 'Enter' && inputValue.trim()) { + // Check if IME composition is in progress + const isIMEComposition = event.isComposing || event.keyCode === 229 + if (event.key === 'Enter' && !isIMEComposition && inputValue.trim()) { event.preventDefault() if (!categoryValues.includes(inputValue)) { setCategoryValues([...categoryValues, inputValue]) diff --git a/packages/ui/src/views/canvas/CanvasHeader.jsx b/packages/ui/src/views/canvas/CanvasHeader.jsx index ea455f41c2e..8169d7fa20d 100644 --- a/packages/ui/src/views/canvas/CanvasHeader.jsx +++ b/packages/ui/src/views/canvas/CanvasHeader.jsx @@ -482,7 +482,9 @@ const CanvasHeader = ({ chatflow, isAgentCanvas, isAgentflowV2, handleSaveFlow, }} defaultValue={flowName} onKeyDown={(e) => { - if (e.key === 'Enter') { + // Check if IME composition is in progress + const isIMEComposition = e.isComposing || e.keyCode === 229 + if (e.key === 'Enter' && !isIMEComposition) { submitFlowName() } else if (e.key === 'Escape') { setEditingFlowName(false)