onReUpload?.(fileId)}
/>
)
}
diff --git a/web/app/components/base/file-uploader/file-uploader-in-chat-input/file-list.tsx b/web/app/components/base/file-uploader/file-uploader-in-chat-input/file-list.tsx
index 33fd4443e8..870de729dc 100644
--- a/web/app/components/base/file-uploader/file-uploader-in-chat-input/file-list.tsx
+++ b/web/app/components/base/file-uploader/file-uploader-in-chat-input/file-list.tsx
@@ -1,10 +1,15 @@
import { isImage } from '../utils'
+import { useFile } from '../hooks'
import { useStore } from '../store'
import FileImageItem from './file-image-item'
import FileItem from './file-item'
const FileList = () => {
const files = useStore(s => s.files)
+ const {
+ handleRemoveFile,
+ handleReUploadFile,
+ } = useFile()
return (
@@ -13,16 +18,27 @@ const FileList = () => {
if (isImage(file.file)) {
return (
)
}
return (
)
})
diff --git a/web/app/components/base/file-uploader/hooks.ts b/web/app/components/base/file-uploader/hooks.ts
index 1be14aaccd..1bec18265c 100644
--- a/web/app/components/base/file-uploader/hooks.ts
+++ b/web/app/components/base/file-uploader/hooks.ts
@@ -25,7 +25,7 @@ export const useFile = () => {
} = fileStore.getState()
const newFiles = produce(files, (draft) => {
- const index = draft.findIndex(file => file.id === newFile.id)
+ const index = draft.findIndex(file => file.fileId === newFile.fileId)
if (index > -1)
draft[index] = newFile
@@ -41,7 +41,7 @@ export const useFile = () => {
setFiles,
} = fileStore.getState()
- const newFiles = files.filter(file => file.id !== fileId)
+ const newFiles = files.filter(file => file.fileId !== fileId)
setFiles(newFiles)
}, [fileStore])
@@ -50,7 +50,7 @@ export const useFile = () => {
files,
setFiles,
} = fileStore.getState()
- const index = files.findIndex(file => file.id === fileId)
+ const index = files.findIndex(file => file.fileId === fileId)
if (index > -1) {
const uploadingFile = files[index]
@@ -94,7 +94,7 @@ export const useFile = () => {
'load',
() => {
const uploadingFile = {
- id: uuid4(),
+ fileId: uuid4(),
file,
url: '',
progress: 0,
@@ -107,7 +107,7 @@ export const useFile = () => {
handleAddOrUpdateFiles({ ...uploadingFile, progress })
},
onSuccessCallback: (res) => {
- handleAddOrUpdateFiles({ ...uploadingFile, fileId: res.id, progress: 100 })
+ handleAddOrUpdateFiles({ ...uploadingFile, fileStorageId: res.id, progress: 100 })
},
onErrorCallback: () => {
notify({ type: 'error', message: t('common.imageUploader.uploadFromComputerUploadError') })
diff --git a/web/app/components/base/file-uploader/index.ts b/web/app/components/base/file-uploader/index.ts
index 8d95504bf1..1c599cd4b0 100644
--- a/web/app/components/base/file-uploader/index.ts
+++ b/web/app/components/base/file-uploader/index.ts
@@ -1,4 +1,6 @@
export { default as FileUploaderInAttachmentWrapper } from './file-uploader-in-attachment'
+export { default as FileItemInAttachment } from './file-uploader-in-attachment/file-item'
export { default as FileUploaderInChatInput } from './file-uploader-in-chat-input'
export { default as FileTypeIcon } from './file-type-icon'
export { default as FileListInChatInput } from './file-uploader-in-chat-input/file-list'
+export { default as FileItemInChatInput } from './file-uploader-in-chat-input/file-list'
diff --git a/web/app/components/base/file-uploader/types.ts b/web/app/components/base/file-uploader/types.ts
index 237f444501..217959433b 100644
--- a/web/app/components/base/file-uploader/types.ts
+++ b/web/app/components/base/file-uploader/types.ts
@@ -16,9 +16,9 @@ export enum FileAppearanceTypeEnum {
export type FileAppearanceType = keyof typeof FileAppearanceTypeEnum
export type FileEntity = {
- id: string
- file?: File
- fileId?: string
+ fileId: string
+ file: File
+ fileStorageId?: string
progress: number
url?: string
base64Url?: string