fix: fix issue with chat-input-area clearing during Responding state. (#12352)

This commit is contained in:
Wood 2025-01-04 11:51:35 +08:00 committed by GitHub
parent 70698024f5
commit 6c9e6a3a5a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 9 additions and 1 deletions

View File

@ -39,6 +39,7 @@ type ChatInputAreaProps = {
inputs?: Record<string, any> inputs?: Record<string, any>
inputsForm?: InputForm[] inputsForm?: InputForm[]
theme?: Theme | null theme?: Theme | null
isResponding?: boolean
} }
const ChatInputArea = ({ const ChatInputArea = ({
showFeatureBar, showFeatureBar,
@ -51,6 +52,7 @@ const ChatInputArea = ({
inputs = {}, inputs = {},
inputsForm = [], inputsForm = [],
theme, theme,
isResponding,
}: ChatInputAreaProps) => { }: ChatInputAreaProps) => {
const { t } = useTranslation() const { t } = useTranslation()
const { notify } = useToastContext() const { notify } = useToastContext()
@ -77,6 +79,11 @@ const ChatInputArea = ({
const historyRef = useRef(['']) const historyRef = useRef([''])
const [currentIndex, setCurrentIndex] = useState(-1) const [currentIndex, setCurrentIndex] = useState(-1)
const handleSend = () => { const handleSend = () => {
if (isResponding) {
notify({ type: 'info', message: t('appDebug.errorMessage.waitForResponse') })
return
}
if (onSend) { if (onSend) {
const { files, setFiles } = filesStore.getState() const { files, setFiles } = filesStore.getState()
if (files.find(item => item.transferMethod === TransferMethod.local_file && !item.uploadedId)) { if (files.find(item => item.transferMethod === TransferMethod.local_file && !item.uploadedId)) {
@ -116,7 +123,7 @@ const ChatInputArea = ({
setQuery(historyRef.current[currentIndex + 1]) setQuery(historyRef.current[currentIndex + 1])
} }
else if (currentIndex === historyRef.current.length - 1) { else if (currentIndex === historyRef.current.length - 1) {
// If it is the last element, clear the input box // If it is the last element, clear the input box
setCurrentIndex(historyRef.current.length) setCurrentIndex(historyRef.current.length)
setQuery('') setQuery('')
} }

View File

@ -292,6 +292,7 @@ const Chat: FC<ChatProps> = ({
inputs={inputs} inputs={inputs}
inputsForm={inputsForm} inputsForm={inputsForm}
theme={themeBuilder?.theme} theme={themeBuilder?.theme}
isResponding={isResponding}
/> />
) )
} }