fix(chat): prevent sending messages before file uploads finish

This commit is contained in:
Asish Kumar
2026-04-09 17:52:00 +00:00
parent 510ac2afaa
commit 2d6878f158
8 changed files with 18 additions and 1 deletions
@@ -97,7 +97,7 @@ export const getSupportFileType = (fileName: string, fileMimetype: string, isCus
}
export const getProcessedFiles = (files: FileEntity[]) => {
return files.filter(file => file.progress !== -1).map(fileItem => ({
return files.filter(file => file.progress !== -1 && fileIsUploaded(file)).map(fileItem => ({
type: fileItem.supportFileType,
transfer_method: fileItem.transferMethod,
url: fileItem.url || '',
+6
View File
@@ -98,6 +98,12 @@ const Chat: FC<IChatProps> = ({
const handleSend = () => {
if (!valid() || (checkCanSend && !checkCanSend())) { return }
const hasPendingImageUploads = files.some(file => file.progress !== -1 && file.progress < 100)
const hasPendingAttachmentUploads = attachmentFiles.some(file => file.progress !== -1 && file.progress < 100)
if (hasPendingImageUploads || hasPendingAttachmentUploads) {
logError(t('app.errorMessage.waitForFileUpload'))
return
}
const imageFiles: VisionFile[] = files.filter(file => file.progress !== -1).map(fileItem => ({
type: 'image',
transfer_method: fileItem.type,
+2
View File
@@ -27,6 +27,8 @@ const translation = {
valueOfVarRequired: 'Variables value can not be empty',
waitForResponse:
'Please wait for the response to the previous message to complete.',
waitForFileUpload:
'Please wait for all files to finish uploading before sending.',
},
variableTable: {
optional: 'Optional',
+2
View File
@@ -27,6 +27,8 @@ const translation = {
valueOfVarRequired: 'El valor de las variables no puede estar vacío',
waitForResponse:
'Por favor espere a que la respuesta al mensaje anterior se complete.',
waitForFileUpload:
'Espere a que todos los archivos terminen de cargarse antes de enviar.',
},
}
+2
View File
@@ -27,6 +27,8 @@ const translation = {
valueOfVarRequired: 'La valeur des variables ne peut pas être vide',
waitForResponse:
'Veuillez attendre que la réponse au message précédent soit terminée.',
waitForFileUpload:
'Veuillez attendre la fin du téléversement de tous les fichiers avant lenvoi.',
},
variableTable: {
optional: 'Facultatif',
+2
View File
@@ -27,6 +27,8 @@ const translation = {
valueOfVarRequired: '変数の値は空にできません',
waitForResponse:
'前のメッセージの応答が完了するまでお待ちください。',
waitForFileUpload:
'すべてのファイルのアップロードが完了してから送信してください。',
},
variableTable: {
optional: '任意',
+2
View File
@@ -27,6 +27,8 @@ const translation = {
valueOfVarRequired: 'Giá trị của biến không thể để trống',
waitForResponse:
'Vui lòng đợi phản hồi từ tin nhắn trước khi gửi tin nhắn mới.',
waitForFileUpload:
'Vui lòng đợi tất cả tệp tải lên xong trước khi gửi.',
},
variableTable: {
optional: 'Tùy chọn',
+1
View File
@@ -22,6 +22,7 @@ const translation = {
errorMessage: {
valueOfVarRequired: '变量值必填',
waitForResponse: '请等待上条信息响应完成',
waitForFileUpload: '请等待所有文件上传完成后再发送',
},
variableTable: {
optional: '可选',