diff --git a/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/list/index.tsx b/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/list/index.tsx index f99d311807..570ccca301 100644 --- a/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/list/index.tsx +++ b/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/list/index.tsx @@ -1,9 +1,13 @@ +import React, { useMemo } from 'react' import type { OnlineDriveFile } from '@/models/pipeline' import Item from './item' import EmptyFolder from './empty-folder' import EmptySearchResult from './empty-search-result' import Loading from '@/app/components/base/loading' import { RiLoader2Line } from '@remixicon/react' +import { useFileSupportTypes } from '@/service/use-common' +import { isFile } from '../../utils' +import { getFileExtension } from './utils' type FileListProps = { fileList: OnlineDriveFile[] @@ -30,6 +34,11 @@ const List = ({ const isPartLoading = isLoading && fileList.length > 0 const isEmptyFolder = !isLoading && fileList.length === 0 && keywords.length === 0 const isSearchResultEmpty = !isLoading && fileList.length === 0 && keywords.length > 0 + const { data: supportFileTypesRes } = useFileSupportTypes() + const supportedFileTypes = useMemo(() => { + if (!supportFileTypesRes) return [] + return Array.from(new Set(supportFileTypesRes.allowed_extensions.map(item => item.toLowerCase()))) + }, [supportFileTypesRes]) return (
@@ -53,11 +62,14 @@ const List = ({ { fileList.map((file) => { const isSelected = selectedFileList.includes(file.key) + const extension = getFileExtension(file.key) + const disabled = isFile(file.key) && !supportedFileTypes.includes(extension) return ( {!isBucket && isMultipleChoice && ( - + )} {!isBucket && !isMultipleChoice && ( - + )}