refactor: Remove unused file support types logic from CreateFormPipeline component

feat/rag-2
twwu 10 months ago
parent 4a8061d14c
commit 4ea4d227c6

@ -1,12 +1,10 @@
import React, { useEffect, useMemo, useRef } from 'react' import React, { useEffect, useRef } from 'react'
import { type OnlineDriveFile, OnlineDriveFileType } from '@/models/pipeline' import type { OnlineDriveFile } from '@/models/pipeline'
import Item from './item' import Item from './item'
import EmptyFolder from './empty-folder' import EmptyFolder from './empty-folder'
import EmptySearchResult from './empty-search-result' import EmptySearchResult from './empty-search-result'
import Loading from '@/app/components/base/loading' import Loading from '@/app/components/base/loading'
import { RiLoader2Line } from '@remixicon/react' import { RiLoader2Line } from '@remixicon/react'
import { useFileSupportTypes } from '@/service/use-common'
import { getFileExtension } from './utils'
import { useDataSourceStore } from '../../../store' import { useDataSourceStore } from '../../../store'
type FileListProps = { type FileListProps = {
@ -64,11 +62,6 @@ const List = ({
const isPartLoading = isLoading && fileList.length > 0 const isPartLoading = isLoading && fileList.length > 0
const isEmptyFolder = !isLoading && fileList.length === 0 && keywords.length === 0 const isEmptyFolder = !isLoading && fileList.length === 0 && keywords.length === 0
const isSearchResultEmpty = !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 ( return (
<div className='grow overflow-hidden p-1 pt-0'> <div className='grow overflow-hidden p-1 pt-0'>
@ -92,14 +85,11 @@ const List = ({
{ {
fileList.map((file) => { fileList.map((file) => {
const isSelected = selectedFileList.includes(file.key) const isSelected = selectedFileList.includes(file.key)
const extension = getFileExtension(file.key)
const disabled = file.type === OnlineDriveFileType.file && !supportedFileTypes.includes(extension)
return ( return (
<Item <Item
key={file.key} key={file.key}
file={file} file={file}
isSelected={isSelected} isSelected={isSelected}
disabled={disabled}
onSelect={handleSelectFile} onSelect={handleSelectFile}
onOpen={handleOpenFolder} onOpen={handleOpenFolder}
isMultipleChoice={!isInPipeline} isMultipleChoice={!isInPipeline}

@ -30,8 +30,7 @@ import { TransferMethod } from '@/types/app'
import { useAddDocumentsSteps, useLocalFile, useOnlineDocuments, useOnlineDrive, useWebsiteCrawl } from './hooks' import { useAddDocumentsSteps, useLocalFile, useOnlineDocuments, useOnlineDrive, useWebsiteCrawl } from './hooks'
import DataSourceProvider from './data-source/store/provider' import DataSourceProvider from './data-source/store/provider'
import { useDataSourceStore } from './data-source/store' import { useDataSourceStore } from './data-source/store'
import { useFileSupportTypes, useFileUploadConfig } from '@/service/use-common' import { useFileUploadConfig } from '@/service/use-common'
import { getFileExtension } from './data-source/online-drive/file-list/list/utils'
const CreateFormPipeline = () => { const CreateFormPipeline = () => {
const { t } = useTranslation() const { t } = useTranslation()
@ -49,7 +48,6 @@ const CreateFormPipeline = () => {
const { data: pipelineInfo, isFetching: isFetchingPipelineInfo } = usePublishedPipelineInfo(pipelineId || '') const { data: pipelineInfo, isFetching: isFetchingPipelineInfo } = usePublishedPipelineInfo(pipelineId || '')
const { data: fileUploadConfigResponse } = useFileUploadConfig() const { data: fileUploadConfigResponse } = useFileUploadConfig()
const { data: supportFileTypesRes } = useFileSupportTypes()
const { const {
steps, steps,
@ -113,11 +111,6 @@ const CreateFormPipeline = () => {
return false return false
}, [datasource, datasourceType, isShowVectorSpaceFull, fileList.length, allFileLoaded, onlineDocuments.length, websitePages.length, selectedFileList.length]) }, [datasource, datasourceType, isShowVectorSpaceFull, fileList.length, allFileLoaded, onlineDocuments.length, websitePages.length, selectedFileList.length])
const supportedFileTypes = useMemo(() => {
if (!supportFileTypesRes) return []
return Array.from(new Set(supportFileTypesRes.allowed_extensions.map(item => item.toLowerCase())))
}, [supportFileTypesRes])
const fileUploadConfig = useMemo(() => fileUploadConfigResponse ?? { const fileUploadConfig = useMemo(() => fileUploadConfigResponse ?? {
file_size_limit: 15, file_size_limit: 15,
batch_count_limit: 5, batch_count_limit: 5,
@ -131,28 +124,20 @@ const CreateFormPipeline = () => {
if (datasourceType === DatasourceType.onlineDrive) { if (datasourceType === DatasourceType.onlineDrive) {
const isBucketList = onlineDriveFileList.some(file => file.type === 'bucket') const isBucketList = onlineDriveFileList.some(file => file.type === 'bucket')
return !isBucketList && onlineDriveFileList.filter((item) => { return !isBucketList && onlineDriveFileList.filter((item) => {
if (item.type === 'bucket') return false return item.type !== 'bucket'
if (item.type === 'folder') return true
if (item.type === 'file')
return supportedFileTypes.includes(getFileExtension(item.key))
return false
}).length > 0 }).length > 0
} }
}, [currentWorkspace?.pages.length, datasourceType, onlineDriveFileList, supportedFileTypes]) }, [currentWorkspace?.pages.length, datasourceType, onlineDriveFileList])
const totalOptions = useMemo(() => { const totalOptions = useMemo(() => {
if (datasourceType === DatasourceType.onlineDocument) if (datasourceType === DatasourceType.onlineDocument)
return currentWorkspace?.pages.length return currentWorkspace?.pages.length
if (datasourceType === DatasourceType.onlineDrive) { if (datasourceType === DatasourceType.onlineDrive) {
return onlineDriveFileList.filter((item) => { return onlineDriveFileList.filter((item) => {
if (item.type === 'bucket') return false return item.type !== 'bucket'
if (item.type === 'folder') return true
if (item.type === 'file')
return supportedFileTypes.includes(getFileExtension(item.key))
return false
}).length }).length
} }
}, [currentWorkspace?.pages.length, datasourceType, onlineDriveFileList, supportedFileTypes]) }, [currentWorkspace?.pages.length, datasourceType, onlineDriveFileList])
const selectedOptions = useMemo(() => { const selectedOptions = useMemo(() => {
if (datasourceType === DatasourceType.onlineDocument) if (datasourceType === DatasourceType.onlineDocument)
@ -324,18 +309,14 @@ const CreateFormPipeline = () => {
} }
if (datasourceType === DatasourceType.onlineDrive) { if (datasourceType === DatasourceType.onlineDrive) {
const allKeys = onlineDriveFileList.filter((item) => { const allKeys = onlineDriveFileList.filter((item) => {
if (item.type === 'bucket') return false return item.type !== 'bucket'
if (item.type === 'folder') return true
if (item.type === 'file')
return supportedFileTypes.includes(getFileExtension(item.key))
return false
}).map(file => file.key) }).map(file => file.key)
if (selectedFileList.length < allKeys.length) if (selectedFileList.length < allKeys.length)
setSelectedFileList(allKeys) setSelectedFileList(allKeys)
else else
setSelectedFileList([]) setSelectedFileList([])
} }
}, [PagesMapAndSelectedPagesId, currentWorkspace?.pages, dataSourceStore, datasourceType, onlineDocuments.length, onlineDriveFileList, selectedFileList.length, supportedFileTypes]) }, [PagesMapAndSelectedPagesId, currentWorkspace?.pages, dataSourceStore, datasourceType, onlineDocuments.length, onlineDriveFileList, selectedFileList.length])
if (isFetchingPipelineInfo) { if (isFetchingPipelineInfo) {
return ( return (

Loading…
Cancel
Save