Browse Source

fix: simplify Enter key handling and remove unused ref (#10413)

katsuma 5 months ago
parent
commit
98b3e37144
1 changed files with 3 additions and 15 deletions
  1. 3 15
      web/app/components/base/chat/chat/chat-input-area/index.tsx

+ 3 - 15
web/app/components/base/chat/chat/chat-input-area/index.tsx

@@ -1,6 +1,5 @@
 import {
   useCallback,
-  useRef,
   useState,
 } from 'react'
 import Textarea from 'rc-textarea'
@@ -63,7 +62,6 @@ const ChatInputArea = ({
     isMultipleLine,
   } = useTextAreaHeight()
   const [query, setQuery] = useState('')
-  const isUseInputMethod = useRef(false)
   const [showVoiceInput, setShowVoiceInput] = useState(false)
   const filesStore = useFileStore()
   const {
@@ -95,20 +93,11 @@ const ChatInputArea = ({
     }
   }
 
-  const handleKeyUp = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {
-    if (e.key === 'Enter') {
-      e.preventDefault()
-      // prevent send message when using input method enter
-      if (!e.shiftKey && !isUseInputMethod.current)
-        handleSend()
-    }
-  }
-
   const handleKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {
-    isUseInputMethod.current = e.nativeEvent.isComposing
-    if (e.key === 'Enter' && !e.shiftKey) {
-      setQuery(query.replace(/\n$/, ''))
+    if (e.key === 'Enter' && !e.shiftKey && !e.nativeEvent.isComposing) {
       e.preventDefault()
+      setQuery(query.replace(/\n$/, ''))
+      handleSend()
     }
   }
 
@@ -165,7 +154,6 @@ const ChatInputArea = ({
                   setQuery(e.target.value)
                   handleTextareaResize()
                 }}
-                onKeyUp={handleKeyUp}
                 onKeyDown={handleKeyDown}
                 onPaste={handleClipboardPasteFile}
                 onDragEnter={handleDragFileEnter}