diff --git a/web/app/components/base/file-uploader/store.tsx b/web/app/components/base/file-uploader/store.tsx index 09ca1a103f..043dc8bce6 100644 --- a/web/app/components/base/file-uploader/store.tsx +++ b/web/app/components/base/file-uploader/store.tsx @@ -16,11 +16,12 @@ type Shape = { setFiles: (files: FileEntity[]) => void } -export const createFileStore = () => { +export const createFileStore = (onChange?: (files: FileEntity[]) => void) => { return create(set => ({ files: [], setFiles: (files) => { set({ files }) + onChange?.(files) }, })) } @@ -44,14 +45,16 @@ type FileProviderProps = { children: React.ReactNode isPublicAPI?: boolean url?: string + onChange?: (files: FileEntity[]) => void } export const FileContextProvider = ({ children, + onChange, }: FileProviderProps) => { const storeRef = useRef() if (!storeRef.current) - storeRef.current = createFileStore() + storeRef.current = createFileStore(onChange) return ( diff --git a/web/app/components/share/text-generation/run-once/index.tsx b/web/app/components/share/text-generation/run-once/index.tsx index 1de4b2cda1..0e850b5d05 100644 --- a/web/app/components/share/text-generation/run-once/index.tsx +++ b/web/app/components/share/text-generation/run-once/index.tsx @@ -113,7 +113,12 @@ const RunOnce: FC = ({ ) } - {}} /> + onVisionFilesChange(files.filter(file => file.progress !== -1).map(fileItem => ({ + type: fileItem.fileType, + transfer_method: fileItem.type, + url: fileItem.url || '', + upload_file_id: fileItem.fileId, + })))} /> {promptConfig.prompt_variables.length > 0 && (
)} diff --git a/web/app/components/workflow/nodes/_base/components/before-run-form/form-item.tsx b/web/app/components/workflow/nodes/_base/components/before-run-form/form-item.tsx index 30b6a66171..5755749b98 100644 --- a/web/app/components/workflow/nodes/_base/components/before-run-form/form-item.tsx +++ b/web/app/components/workflow/nodes/_base/components/before-run-form/form-item.tsx @@ -159,7 +159,12 @@ const FormItem: FC = ({ {/* #TODO# file upload */} {(type === InputVarType.singleFile || type === InputVarType.multiFiles) && ( - {}} /> + onChange(files.filter(file => file.progress !== -1).map(fileItem => ({ + type: fileItem.fileType, + transfer_method: fileItem.type, + url: fileItem.url, + upload_file_id: fileItem.fileId, + })))} /> )} { type === InputVarType.files && (