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

This commit is contained in:
katsuma 2024-11-07 22:21:50 +09:00 committed by GitHub
parent 6e23903c63
commit 98b3e37144
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

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