diff --git a/web/app/components/workflow/nodes/_base/components/file-type-item.tsx b/web/app/components/workflow/nodes/_base/components/file-type-item.tsx index c830a7dffe..2099474e42 100644 --- a/web/app/components/workflow/nodes/_base/components/file-type-item.tsx +++ b/web/app/components/workflow/nodes/_base/components/file-type-item.tsx @@ -10,7 +10,7 @@ import TagInput from '@/app/components/base/tag-input' type Props = { type: SupportUploadFileTypes.image | SupportUploadFileTypes.document | SupportUploadFileTypes.audio | SupportUploadFileTypes.video | SupportUploadFileTypes.custom selected: boolean - onSelect: (type: SupportUploadFileTypes) => void + onToggle: (type: SupportUploadFileTypes) => void onCustomFileTypesChange?: (customFileTypes: string[]) => void customFileTypes?: string[] } @@ -18,26 +18,25 @@ type Props = { const FileTypeItem: FC = ({ type, selected, - onSelect, + onToggle, customFileTypes = [], onCustomFileTypesChange = () => { }, }) => { const { t } = useTranslation() const handleOnSelect = useCallback(() => { - if (!selected) - onSelect(type) - }, [selected, onSelect, type]) + onToggle(type) + }, [onToggle, type]) const isCustomSelected = type === SupportUploadFileTypes.custom && selected return (
diff --git a/web/app/components/workflow/nodes/_base/components/file-upload-setting.tsx b/web/app/components/workflow/nodes/_base/components/file-upload-setting.tsx index 3db11702f3..1622db496a 100644 --- a/web/app/components/workflow/nodes/_base/components/file-upload-setting.tsx +++ b/web/app/components/workflow/nodes/_base/components/file-upload-setting.tsx @@ -33,10 +33,20 @@ const FileUploadSetting: FC = ({ const handleSupportFileTypeChange = useCallback((type: SupportUploadFileTypes) => { const newPayload = produce(payload, (draft) => { - if (draft.allowed_file_types.includes(type)) - draft.allowed_file_types = draft.allowed_file_types.filter(v => v !== type) - else - draft.allowed_file_types.push(type) + if (type === SupportUploadFileTypes.custom) { + if (!draft.allowed_file_types.includes(SupportUploadFileTypes.custom)) + draft.allowed_file_types = [SupportUploadFileTypes.custom] + + else + draft.allowed_file_types = draft.allowed_file_types.filter(v => v !== type) + } + else { + draft.allowed_file_types = draft.allowed_file_types.filter(v => v !== SupportUploadFileTypes.custom) + if (draft.allowed_file_types.includes(type)) + draft.allowed_file_types = draft.allowed_file_types.filter(v => v !== type) + else + draft.allowed_file_types.push(type) + } }) onChange(newPayload) }, [onChange, payload]) @@ -74,7 +84,7 @@ const FileUploadSetting: FC = ({ return (
{ @@ -83,14 +93,14 @@ const FileUploadSetting: FC = ({ key={type} type={type as SupportUploadFileTypes.image | SupportUploadFileTypes.document | SupportUploadFileTypes.audio | SupportUploadFileTypes.video} selected={allowed_file_types.includes(type)} - onSelect={handleSupportFileTypeChange} + onToggle={handleSupportFileTypeChange} /> )) } diff --git a/web/i18n/en-US/app-debug.ts b/web/i18n/en-US/app-debug.ts index 72ad13e43a..06e800c4ca 100644 --- a/web/i18n/en-US/app-debug.ts +++ b/web/i18n/en-US/app-debug.ts @@ -325,6 +325,7 @@ const translation = { 'content': 'Content', 'required': 'Required', 'file': { + supportFileTypes: 'Support File Types', image: { name: 'Image', }, diff --git a/web/i18n/zh-Hans/app-debug.ts b/web/i18n/zh-Hans/app-debug.ts index 5e052594a4..87486b6082 100644 --- a/web/i18n/zh-Hans/app-debug.ts +++ b/web/i18n/zh-Hans/app-debug.ts @@ -321,6 +321,7 @@ const translation = { 'labelName': '显示名称', 'required': '必填', 'file': { + supportFileTypes: '支持的文件类型', image: { name: '图片', },