From 8fd3eeb76022cb938bba5917ca922a7c72075ccc Mon Sep 17 00:00:00 2001 From: Stephen Zhou <38493346+hyoban@users.noreply.github.com> Date: Thu, 12 Feb 2026 17:23:01 +0800 Subject: [PATCH] fix: can not upload file in single run (#32276) --- web/app/components/base/file-uploader/store.tsx | 14 +------------- .../_base/components/before-run-form/form-item.tsx | 8 ++++---- web/eslint-suppressions.json | 8 -------- 3 files changed, 5 insertions(+), 25 deletions(-) diff --git a/web/app/components/base/file-uploader/store.tsx b/web/app/components/base/file-uploader/store.tsx index 24015df5cf..b281a9de8f 100644 --- a/web/app/components/base/file-uploader/store.tsx +++ b/web/app/components/base/file-uploader/store.tsx @@ -1,11 +1,9 @@ import type { FileEntity, } from './types' -import { isEqual } from 'es-toolkit/predicate' import { createContext, useContext, - useEffect, useRef, } from 'react' import { @@ -57,20 +55,10 @@ export const FileContextProvider = ({ onChange, }: FileProviderProps) => { const storeRef = useRef(undefined) + if (!storeRef.current) storeRef.current = createFileStore(value, onChange) - useEffect(() => { - if (!storeRef.current) - return - if (isEqual(value, storeRef.current.getState().files)) - return - - storeRef.current.setState({ - files: value ? [...value] : [], - }) - }, [value]) - return ( {children} 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 d66d47cc1f..e45c9dbd95 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 @@ -108,7 +108,7 @@ const FormItem: FC = ({ const isIteratorItemFile = isIterator && payload.isFileItem const singleFileValue = useMemo(() => { if (payload.variable === '#files#') - return value?.[0] || [] + return value || [] return value ? [value] : [] }, [payload.variable, value]) @@ -124,19 +124,19 @@ const FormItem: FC = ({ return (
{!isArrayLikeType && !isBooleanType && ( -
+
{typeof payload.label === 'object' ? nodeKey : payload.label}
{payload.hide === true ? ( - + {t('panel.optional_and_hidden', { ns: 'workflow' })} ) : ( !payload.required && ( - + {t('panel.optional', { ns: 'workflow' })} ) diff --git a/web/eslint-suppressions.json b/web/eslint-suppressions.json index 90571e4947..f55a49c564 100644 --- a/web/eslint-suppressions.json +++ b/web/eslint-suppressions.json @@ -4102,11 +4102,6 @@ "count": 1 } }, - "app/components/explore/app-card/index.spec.tsx": { - "ts/no-explicit-any": { - "count": 1 - } - }, "app/components/explore/app-card/index.tsx": { "tailwindcss/enforce-consistent-class-order": { "count": 1 @@ -6201,9 +6196,6 @@ } }, "app/components/workflow/nodes/_base/components/before-run-form/form-item.tsx": { - "tailwindcss/enforce-consistent-class-order": { - "count": 3 - }, "ts/no-explicit-any": { "count": 11 }