Parcourir la source

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

tags/0.11.1
katsuma il y a 1 an
Parent
révision
98b3e37144
Aucun compte lié à l'adresse e-mail de l'auteur
1 fichiers modifiés avec 3 ajouts et 15 suppressions
  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 Voir le fichier

import { import {
useCallback, useCallback,
useRef,
useState, useState,
} from 'react' } from 'react'
import Textarea from 'rc-textarea' import Textarea from 'rc-textarea'
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 {
} }
} }


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) {
setQuery(query.replace(/\n$/, ''))
if (e.key === 'Enter' && !e.shiftKey && !e.nativeEvent.isComposing) {
e.preventDefault() e.preventDefault()
setQuery(query.replace(/\n$/, ''))
handleSend()
} }
} }


setQuery(e.target.value) setQuery(e.target.value)
handleTextareaResize() handleTextareaResize()
}} }}
onKeyUp={handleKeyUp}
onKeyDown={handleKeyDown} onKeyDown={handleKeyDown}
onPaste={handleClipboardPasteFile} onPaste={handleClipboardPasteFile}
onDragEnter={handleDragFileEnter} onDragEnter={handleDragFileEnter}

Chargement…
Annuler
Enregistrer