From f5d1f5a20a6d4131c3d5a78950eb9416563433ae Mon Sep 17 00:00:00 2001 From: StyleZhang Date: Wed, 18 Sep 2024 16:50:53 +0800 Subject: [PATCH] file uploader --- web/app/components/base/file-uploader/store.tsx | 7 +++++-- .../components/share/text-generation/run-once/index.tsx | 7 ++++++- .../nodes/_base/components/before-run-form/form-item.tsx | 7 ++++++- 3 files changed, 17 insertions(+), 4 deletions(-) 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 && (