mirror of
https://github.com/langgenius/dify.git
synced 2026-04-29 04:26:30 +08:00
refactor: update local file and online drive state management in create-from-pipeline components
This commit is contained in:
parent
843b14ccc6
commit
048feb4165
@ -32,7 +32,6 @@ const DataSourceOptions = ({
|
|||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (options.length > 0 && !datasourceNodeId)
|
if (options.length > 0 && !datasourceNodeId)
|
||||||
handelSelect(options[0].value)
|
handelSelect(options[0].value)
|
||||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
||||||
}, [])
|
}, [])
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
@ -32,7 +32,7 @@ const LocalFile = ({
|
|||||||
const { t } = useTranslation()
|
const { t } = useTranslation()
|
||||||
const { notify } = useContext(ToastContext)
|
const { notify } = useContext(ToastContext)
|
||||||
const { locale } = useContext(I18n)
|
const { locale } = useContext(I18n)
|
||||||
const fileList = useDataSourceStoreWithSelector(state => state.localFileList)
|
const localFileList = useDataSourceStoreWithSelector(state => state.localFileList)
|
||||||
const dataSourceStore = useDataSourceStore()
|
const dataSourceStore = useDataSourceStore()
|
||||||
const [dragging, setDragging] = useState(false)
|
const [dragging, setDragging] = useState(false)
|
||||||
|
|
||||||
@ -41,7 +41,7 @@ const LocalFile = ({
|
|||||||
const fileUploader = useRef<HTMLInputElement>(null)
|
const fileUploader = useRef<HTMLInputElement>(null)
|
||||||
const fileListRef = useRef<FileItem[]>([])
|
const fileListRef = useRef<FileItem[]>([])
|
||||||
|
|
||||||
const hideUpload = notSupportBatchUpload && fileList.length > 0
|
const hideUpload = notSupportBatchUpload && localFileList.length > 0
|
||||||
|
|
||||||
const { data: fileUploadConfigResponse } = useFileUploadConfig()
|
const { data: fileUploadConfigResponse } = useFileUploadConfig()
|
||||||
const supportTypesShowNames = useMemo(() => {
|
const supportTypesShowNames = useMemo(() => {
|
||||||
@ -179,7 +179,7 @@ const LocalFile = ({
|
|||||||
if (!files.length)
|
if (!files.length)
|
||||||
return false
|
return false
|
||||||
|
|
||||||
if (files.length + fileList.length > FILES_NUMBER_LIMIT && !IS_CE_EDITION) {
|
if (files.length + localFileList.length > FILES_NUMBER_LIMIT && !IS_CE_EDITION) {
|
||||||
notify({ type: 'error', message: t('datasetCreation.stepOne.uploader.validation.filesNumber', { filesNumber: FILES_NUMBER_LIMIT }) })
|
notify({ type: 'error', message: t('datasetCreation.stepOne.uploader.validation.filesNumber', { filesNumber: FILES_NUMBER_LIMIT }) })
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
@ -193,7 +193,7 @@ const LocalFile = ({
|
|||||||
updateFileList(newFiles)
|
updateFileList(newFiles)
|
||||||
fileListRef.current = newFiles
|
fileListRef.current = newFiles
|
||||||
uploadMultipleFiles(preparedFiles)
|
uploadMultipleFiles(preparedFiles)
|
||||||
}, [updateFileList, uploadMultipleFiles, notify, t, fileList])
|
}, [updateFileList, uploadMultipleFiles, notify, t, localFileList])
|
||||||
|
|
||||||
const handleDragEnter = (e: DragEvent) => {
|
const handleDragEnter = (e: DragEvent) => {
|
||||||
e.preventDefault()
|
e.preventDefault()
|
||||||
@ -297,9 +297,9 @@ const LocalFile = ({
|
|||||||
{dragging && <div ref={dragRef} className='absolute left-0 top-0 h-full w-full' />}
|
{dragging && <div ref={dragRef} className='absolute left-0 top-0 h-full w-full' />}
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
{fileList.length > 0 && (
|
{localFileList.length > 0 && (
|
||||||
<div className='mt-1 flex flex-col gap-y-1'>
|
<div className='mt-1 flex flex-col gap-y-1'>
|
||||||
{fileList.map((fileItem, index) => {
|
{localFileList.map((fileItem, index) => {
|
||||||
const isUploading = fileItem.progress >= 0 && fileItem.progress < 100
|
const isUploading = fileItem.progress >= 0 && fileItem.progress < 100
|
||||||
const isError = fileItem.progress === -2
|
const isError = fileItem.progress === -2
|
||||||
return (
|
return (
|
||||||
|
|||||||
@ -17,6 +17,7 @@ const Menu = ({
|
|||||||
{breadcrumbs.map((breadcrumb, index) => {
|
{breadcrumbs.map((breadcrumb, index) => {
|
||||||
return (
|
return (
|
||||||
<Item
|
<Item
|
||||||
|
key={`${breadcrumb}-${index}`}
|
||||||
name={breadcrumb}
|
name={breadcrumb}
|
||||||
index={startIndex + index}
|
index={startIndex + index}
|
||||||
onBreadcrumbClick={onBreadcrumbClick}
|
onBreadcrumbClick={onBreadcrumbClick}
|
||||||
|
|||||||
@ -45,8 +45,8 @@ const Breadcrumbs = ({
|
|||||||
}, [displayBreadcrumbNum, breadcrumbs])
|
}, [displayBreadcrumbNum, breadcrumbs])
|
||||||
|
|
||||||
const handleBackToBucketList = useCallback(() => {
|
const handleBackToBucketList = useCallback(() => {
|
||||||
const { setFileList, setSelectedFileIds, setBreadcrumbs, setPrefix, setBucket } = dataSourceStore.getState()
|
const { setOnlineDriveFileList, setSelectedFileIds, setBreadcrumbs, setPrefix, setBucket } = dataSourceStore.getState()
|
||||||
setFileList([])
|
setOnlineDriveFileList([])
|
||||||
setSelectedFileIds([])
|
setSelectedFileIds([])
|
||||||
setBucket('')
|
setBucket('')
|
||||||
setBreadcrumbs([])
|
setBreadcrumbs([])
|
||||||
@ -54,26 +54,26 @@ const Breadcrumbs = ({
|
|||||||
}, [dataSourceStore])
|
}, [dataSourceStore])
|
||||||
|
|
||||||
const handleClickBucketName = useCallback(() => {
|
const handleClickBucketName = useCallback(() => {
|
||||||
const { setFileList, setSelectedFileIds, setBreadcrumbs, setPrefix } = dataSourceStore.getState()
|
const { setOnlineDriveFileList, setSelectedFileIds, setBreadcrumbs, setPrefix } = dataSourceStore.getState()
|
||||||
setFileList([])
|
setOnlineDriveFileList([])
|
||||||
setSelectedFileIds([])
|
setSelectedFileIds([])
|
||||||
setBreadcrumbs([])
|
setBreadcrumbs([])
|
||||||
setPrefix([])
|
setPrefix([])
|
||||||
}, [dataSourceStore])
|
}, [dataSourceStore])
|
||||||
|
|
||||||
const handleBackToRoot = useCallback(() => {
|
const handleBackToRoot = useCallback(() => {
|
||||||
const { setFileList, setSelectedFileIds, setBreadcrumbs, setPrefix } = dataSourceStore.getState()
|
const { setOnlineDriveFileList, setSelectedFileIds, setBreadcrumbs, setPrefix } = dataSourceStore.getState()
|
||||||
setFileList([])
|
setOnlineDriveFileList([])
|
||||||
setSelectedFileIds([])
|
setSelectedFileIds([])
|
||||||
setBreadcrumbs([])
|
setBreadcrumbs([])
|
||||||
setPrefix([])
|
setPrefix([])
|
||||||
}, [dataSourceStore])
|
}, [dataSourceStore])
|
||||||
|
|
||||||
const handleClickBreadcrumb = useCallback((index: number) => {
|
const handleClickBreadcrumb = useCallback((index: number) => {
|
||||||
const { breadcrumbs, prefix, setFileList, setSelectedFileIds, setBreadcrumbs, setPrefix } = dataSourceStore.getState()
|
const { breadcrumbs, prefix, setOnlineDriveFileList, setSelectedFileIds, setBreadcrumbs, setPrefix } = dataSourceStore.getState()
|
||||||
const newBreadcrumbs = breadcrumbs.slice(0, index + 1)
|
const newBreadcrumbs = breadcrumbs.slice(0, index + 1)
|
||||||
const newPrefix = prefix.slice(0, index + 1)
|
const newPrefix = prefix.slice(0, index + 1)
|
||||||
setFileList([])
|
setOnlineDriveFileList([])
|
||||||
setSelectedFileIds([])
|
setSelectedFileIds([])
|
||||||
setBreadcrumbs(newBreadcrumbs)
|
setBreadcrumbs(newBreadcrumbs)
|
||||||
setPrefix(newPrefix)
|
setPrefix(newPrefix)
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import type { DataSourceNodeType } from '@/app/components/workflow/nodes/data-source/types'
|
import type { DataSourceNodeType } from '@/app/components/workflow/nodes/data-source/types'
|
||||||
import Header from '../base/header'
|
import Header from '../base/header'
|
||||||
import { useCallback, useEffect, useMemo, useState } from 'react'
|
import { useCallback, useEffect, useMemo, useRef, useState } from 'react'
|
||||||
import FileList from './file-list'
|
import FileList from './file-list'
|
||||||
import type { OnlineDriveFile } from '@/models/pipeline'
|
import type { OnlineDriveFile } from '@/models/pipeline'
|
||||||
import { DatasourceType, OnlineDriveFileType } from '@/models/pipeline'
|
import { DatasourceType, OnlineDriveFileType } from '@/models/pipeline'
|
||||||
@ -38,7 +38,7 @@ const OnlineDrive = ({
|
|||||||
keywords,
|
keywords,
|
||||||
bucket,
|
bucket,
|
||||||
selectedFileIds,
|
selectedFileIds,
|
||||||
fileList,
|
onlineDriveFileList,
|
||||||
currentCredentialId,
|
currentCredentialId,
|
||||||
} = useDataSourceStoreWithSelector(useShallow(state => ({
|
} = useDataSourceStoreWithSelector(useShallow(state => ({
|
||||||
nextPageParameters: state.nextPageParameters,
|
nextPageParameters: state.nextPageParameters,
|
||||||
@ -47,11 +47,12 @@ const OnlineDrive = ({
|
|||||||
keywords: state.keywords,
|
keywords: state.keywords,
|
||||||
bucket: state.bucket,
|
bucket: state.bucket,
|
||||||
selectedFileIds: state.selectedFileIds,
|
selectedFileIds: state.selectedFileIds,
|
||||||
fileList: state.fileList,
|
onlineDriveFileList: state.onlineDriveFileList,
|
||||||
currentCredentialId: state.currentCredentialId,
|
currentCredentialId: state.currentCredentialId,
|
||||||
})))
|
})))
|
||||||
const dataSourceStore = useDataSourceStore()
|
const dataSourceStore = useDataSourceStore()
|
||||||
const [isLoading, setIsLoading] = useState(false)
|
const [isLoading, setIsLoading] = useState(false)
|
||||||
|
const isLoadingRef = useRef(false)
|
||||||
|
|
||||||
const { data: dataSourceAuth } = useGetDataSourceAuth({
|
const { data: dataSourceAuth } = useGetDataSourceAuth({
|
||||||
pluginId: nodeData.plugin_id,
|
pluginId: nodeData.plugin_id,
|
||||||
@ -63,8 +64,10 @@ const OnlineDrive = ({
|
|||||||
: `/rag/pipelines/${pipelineId}/workflows/draft/datasource/nodes/${nodeId}/run`
|
: `/rag/pipelines/${pipelineId}/workflows/draft/datasource/nodes/${nodeId}/run`
|
||||||
|
|
||||||
const getOnlineDriveFiles = useCallback(async () => {
|
const getOnlineDriveFiles = useCallback(async () => {
|
||||||
const { nextPageParameters, prefix, bucket, fileList, currentCredentialId } = dataSourceStore.getState()
|
if (isLoadingRef.current) return
|
||||||
|
const { nextPageParameters, prefix, bucket, onlineDriveFileList, currentCredentialId } = dataSourceStore.getState()
|
||||||
setIsLoading(true)
|
setIsLoading(true)
|
||||||
|
isLoadingRef.current = true
|
||||||
ssePost(
|
ssePost(
|
||||||
datasourceNodeRunURL,
|
datasourceNodeRunURL,
|
||||||
{
|
{
|
||||||
@ -81,18 +84,19 @@ const OnlineDrive = ({
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
onDataSourceNodeCompleted: (documentsData: DataSourceNodeCompletedResponse) => {
|
onDataSourceNodeCompleted: (documentsData: DataSourceNodeCompletedResponse) => {
|
||||||
const { setFileList, isTruncated, currentNextPageParametersRef, setHasBucket } = dataSourceStore.getState()
|
const { setOnlineDriveFileList, isTruncated, currentNextPageParametersRef, setHasBucket } = dataSourceStore.getState()
|
||||||
const {
|
const {
|
||||||
fileList: newFileList,
|
fileList: newFileList,
|
||||||
isTruncated: newIsTruncated,
|
isTruncated: newIsTruncated,
|
||||||
nextPageParameters: newNextPageParameters,
|
nextPageParameters: newNextPageParameters,
|
||||||
hasBucket: newHasBucket,
|
hasBucket: newHasBucket,
|
||||||
} = convertOnlineDriveData(documentsData.data, breadcrumbs, bucket)
|
} = convertOnlineDriveData(documentsData.data, breadcrumbs, bucket)
|
||||||
setFileList([...fileList, ...newFileList])
|
setOnlineDriveFileList([...onlineDriveFileList, ...newFileList])
|
||||||
isTruncated.current = newIsTruncated
|
isTruncated.current = newIsTruncated
|
||||||
currentNextPageParametersRef.current = newNextPageParameters
|
currentNextPageParametersRef.current = newNextPageParameters
|
||||||
setHasBucket(newHasBucket)
|
setHasBucket(newHasBucket)
|
||||||
setIsLoading(false)
|
setIsLoading(false)
|
||||||
|
isLoadingRef.current = false
|
||||||
},
|
},
|
||||||
onDataSourceNodeError: (error: DataSourceNodeErrorResponse) => {
|
onDataSourceNodeError: (error: DataSourceNodeErrorResponse) => {
|
||||||
Toast.notify({
|
Toast.notify({
|
||||||
@ -100,6 +104,7 @@ const OnlineDrive = ({
|
|||||||
message: error.error,
|
message: error.error,
|
||||||
})
|
})
|
||||||
setIsLoading(false)
|
setIsLoading(false)
|
||||||
|
isLoadingRef.current = false
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
@ -109,7 +114,7 @@ const OnlineDrive = ({
|
|||||||
if (!currentCredentialId) return
|
if (!currentCredentialId) return
|
||||||
if (isInitialMount) {
|
if (isInitialMount) {
|
||||||
// Only fetch files on initial mount if fileList is empty
|
// Only fetch files on initial mount if fileList is empty
|
||||||
if (fileList.length === 0)
|
if (onlineDriveFileList.length === 0)
|
||||||
getOnlineDriveFiles()
|
getOnlineDriveFiles()
|
||||||
setIsInitialMount(false)
|
setIsInitialMount(false)
|
||||||
}
|
}
|
||||||
@ -118,11 +123,11 @@ const OnlineDrive = ({
|
|||||||
}
|
}
|
||||||
}, [nextPageParameters, prefix, bucket, currentCredentialId])
|
}, [nextPageParameters, prefix, bucket, currentCredentialId])
|
||||||
|
|
||||||
const onlineDriveFileList = useMemo(() => {
|
const filteredOnlineDriveFileList = useMemo(() => {
|
||||||
if (keywords)
|
if (keywords)
|
||||||
return fileList.filter(file => file.name.toLowerCase().includes(keywords.toLowerCase()))
|
return onlineDriveFileList.filter(file => file.name.toLowerCase().includes(keywords.toLowerCase()))
|
||||||
return fileList
|
return onlineDriveFileList
|
||||||
}, [fileList, keywords])
|
}, [onlineDriveFileList, keywords])
|
||||||
|
|
||||||
const updateKeywords = useCallback((keywords: string) => {
|
const updateKeywords = useCallback((keywords: string) => {
|
||||||
const { setKeywords } = dataSourceStore.getState()
|
const { setKeywords } = dataSourceStore.getState()
|
||||||
@ -152,9 +157,9 @@ const OnlineDrive = ({
|
|||||||
}, [dataSourceStore, isInPipeline])
|
}, [dataSourceStore, isInPipeline])
|
||||||
|
|
||||||
const handleOpenFolder = useCallback((file: OnlineDriveFile) => {
|
const handleOpenFolder = useCallback((file: OnlineDriveFile) => {
|
||||||
const { breadcrumbs, setBreadcrumbs, setPrefix, setBucket, setFileList, setSelectedFileIds } = dataSourceStore.getState()
|
const { breadcrumbs, prefix, setBreadcrumbs, setPrefix, setBucket, setOnlineDriveFileList, setSelectedFileIds } = dataSourceStore.getState()
|
||||||
if (file.type === OnlineDriveFileType.file) return
|
if (file.type === OnlineDriveFileType.file) return
|
||||||
setFileList([])
|
setOnlineDriveFileList([])
|
||||||
if (file.type === OnlineDriveFileType.bucket) {
|
if (file.type === OnlineDriveFileType.bucket) {
|
||||||
setBucket(file.name)
|
setBucket(file.name)
|
||||||
}
|
}
|
||||||
@ -189,14 +194,14 @@ const OnlineDrive = ({
|
|||||||
credentials={dataSourceAuth?.result || []}
|
credentials={dataSourceAuth?.result || []}
|
||||||
/>
|
/>
|
||||||
<FileList
|
<FileList
|
||||||
fileList={onlineDriveFileList}
|
fileList={filteredOnlineDriveFileList}
|
||||||
selectedFileIds={selectedFileIds}
|
selectedFileIds={selectedFileIds}
|
||||||
breadcrumbs={breadcrumbs}
|
breadcrumbs={breadcrumbs}
|
||||||
keywords={keywords}
|
keywords={keywords}
|
||||||
bucket={bucket}
|
bucket={bucket}
|
||||||
resetKeywords={resetKeywords}
|
resetKeywords={resetKeywords}
|
||||||
updateKeywords={updateKeywords}
|
updateKeywords={updateKeywords}
|
||||||
searchResultsLength={onlineDriveFileList.length}
|
searchResultsLength={filteredOnlineDriveFileList.length}
|
||||||
handleSelectFile={handleSelectFile}
|
handleSelectFile={handleSelectFile}
|
||||||
handleOpenFolder={handleOpenFolder}
|
handleOpenFolder={handleOpenFolder}
|
||||||
isInPipeline={isInPipeline}
|
isInPipeline={isInPipeline}
|
||||||
|
|||||||
@ -10,8 +10,8 @@ export type OnlineDriveSliceShape = {
|
|||||||
setKeywords: (keywords: string) => void
|
setKeywords: (keywords: string) => void
|
||||||
selectedFileIds: string[]
|
selectedFileIds: string[]
|
||||||
setSelectedFileIds: (selectedFileIds: string[]) => void
|
setSelectedFileIds: (selectedFileIds: string[]) => void
|
||||||
fileList: OnlineDriveFile[]
|
onlineDriveFileList: OnlineDriveFile[]
|
||||||
setFileList: (fileList: OnlineDriveFile[]) => void
|
setOnlineDriveFileList: (onlineDriveFileList: OnlineDriveFile[]) => void
|
||||||
bucket: string
|
bucket: string
|
||||||
setBucket: (bucket: string) => void
|
setBucket: (bucket: string) => void
|
||||||
nextPageParameters: Record<string, any>
|
nextPageParameters: Record<string, any>
|
||||||
@ -43,12 +43,12 @@ export const createOnlineDriveSlice: StateCreator<OnlineDriveSliceShape> = (set,
|
|||||||
selectedFileIds,
|
selectedFileIds,
|
||||||
}))
|
}))
|
||||||
const id = selectedFileIds[0]
|
const id = selectedFileIds[0]
|
||||||
const { fileList, previewOnlineDriveFileRef } = get()
|
const { onlineDriveFileList, previewOnlineDriveFileRef } = get()
|
||||||
previewOnlineDriveFileRef.current = fileList.find(file => file.id === id)
|
previewOnlineDriveFileRef.current = onlineDriveFileList.find(file => file.id === id)
|
||||||
},
|
},
|
||||||
fileList: [],
|
onlineDriveFileList: [],
|
||||||
setFileList: (fileList: OnlineDriveFile[]) => set(() => ({
|
setOnlineDriveFileList: (onlineDriveFileList: OnlineDriveFile[]) => set(() => ({
|
||||||
fileList,
|
onlineDriveFileList,
|
||||||
})),
|
})),
|
||||||
bucket: '',
|
bucket: '',
|
||||||
setBucket: (bucket: string) => set(() => ({
|
setBucket: (bucket: string) => set(() => ({
|
||||||
|
|||||||
@ -65,7 +65,7 @@ export const useDatasourceOptions = (pipelineNodes: Node<DataSourceNodeType>[])
|
|||||||
|
|
||||||
export const useLocalFile = () => {
|
export const useLocalFile = () => {
|
||||||
const {
|
const {
|
||||||
localFileList: fileList,
|
localFileList,
|
||||||
currentLocalFile,
|
currentLocalFile,
|
||||||
} = useDataSourceStoreWithSelector(useShallow(state => ({
|
} = useDataSourceStoreWithSelector(useShallow(state => ({
|
||||||
localFileList: state.localFileList,
|
localFileList: state.localFileList,
|
||||||
@ -73,7 +73,7 @@ export const useLocalFile = () => {
|
|||||||
})))
|
})))
|
||||||
const dataSourceStore = useDataSourceStore()
|
const dataSourceStore = useDataSourceStore()
|
||||||
|
|
||||||
const allFileLoaded = useMemo(() => (fileList.length > 0 && fileList.every(file => file.file.id)), [fileList])
|
const allFileLoaded = useMemo(() => (localFileList.length > 0 && localFileList.every(file => file.file.id)), [localFileList])
|
||||||
|
|
||||||
const hidePreviewLocalFile = useCallback(() => {
|
const hidePreviewLocalFile = useCallback(() => {
|
||||||
const { setCurrentLocalFile } = dataSourceStore.getState()
|
const { setCurrentLocalFile } = dataSourceStore.getState()
|
||||||
@ -81,7 +81,7 @@ export const useLocalFile = () => {
|
|||||||
}, [dataSourceStore])
|
}, [dataSourceStore])
|
||||||
|
|
||||||
return {
|
return {
|
||||||
fileList,
|
localFileList,
|
||||||
allFileLoaded,
|
allFileLoaded,
|
||||||
currentLocalFile,
|
currentLocalFile,
|
||||||
hidePreviewLocalFile,
|
hidePreviewLocalFile,
|
||||||
@ -187,27 +187,27 @@ export const useWebsiteCrawl = () => {
|
|||||||
|
|
||||||
export const useOnlineDrive = () => {
|
export const useOnlineDrive = () => {
|
||||||
const {
|
const {
|
||||||
fileList,
|
onlineDriveFileList,
|
||||||
selectedFileIds,
|
selectedFileIds,
|
||||||
} = useDataSourceStoreWithSelector(useShallow(state => ({
|
} = useDataSourceStoreWithSelector(useShallow(state => ({
|
||||||
fileList: state.fileList,
|
onlineDriveFileList: state.onlineDriveFileList,
|
||||||
selectedFileIds: state.selectedFileIds,
|
selectedFileIds: state.selectedFileIds,
|
||||||
})))
|
})))
|
||||||
const dataSourceStore = useDataSourceStore()
|
const dataSourceStore = useDataSourceStore()
|
||||||
|
|
||||||
const selectedOnlineDriveFileList = useMemo(() => {
|
const selectedOnlineDriveFileList = useMemo(() => {
|
||||||
return selectedFileIds.map(key => fileList.find(item => item.id === key)!)
|
return selectedFileIds.map(key => onlineDriveFileList.find(item => item.id === key)!)
|
||||||
}, [fileList, selectedFileIds])
|
}, [onlineDriveFileList, selectedFileIds])
|
||||||
|
|
||||||
const clearOnlineDriveData = useCallback(() => {
|
const clearOnlineDriveData = useCallback(() => {
|
||||||
const {
|
const {
|
||||||
setFileList,
|
setOnlineDriveFileList,
|
||||||
setBucket,
|
setBucket,
|
||||||
setPrefix,
|
setPrefix,
|
||||||
setKeywords,
|
setKeywords,
|
||||||
setSelectedFileIds,
|
setSelectedFileIds,
|
||||||
} = dataSourceStore.getState()
|
} = dataSourceStore.getState()
|
||||||
setFileList([])
|
setOnlineDriveFileList([])
|
||||||
setBucket('')
|
setBucket('')
|
||||||
setPrefix([])
|
setPrefix([])
|
||||||
setKeywords('')
|
setKeywords('')
|
||||||
@ -215,7 +215,7 @@ export const useOnlineDrive = () => {
|
|||||||
}, [dataSourceStore])
|
}, [dataSourceStore])
|
||||||
|
|
||||||
return {
|
return {
|
||||||
fileList,
|
onlineDriveFileList,
|
||||||
selectedFileIds,
|
selectedFileIds,
|
||||||
selectedOnlineDriveFileList,
|
selectedOnlineDriveFileList,
|
||||||
clearOnlineDriveData,
|
clearOnlineDriveData,
|
||||||
|
|||||||
@ -61,7 +61,7 @@ const CreateFormPipeline = () => {
|
|||||||
handleBackStep,
|
handleBackStep,
|
||||||
} = useAddDocumentsSteps()
|
} = useAddDocumentsSteps()
|
||||||
const {
|
const {
|
||||||
fileList,
|
localFileList,
|
||||||
allFileLoaded,
|
allFileLoaded,
|
||||||
currentLocalFile,
|
currentLocalFile,
|
||||||
hidePreviewLocalFile,
|
hidePreviewLocalFile,
|
||||||
@ -81,7 +81,7 @@ const CreateFormPipeline = () => {
|
|||||||
clearWebsiteCrawlData,
|
clearWebsiteCrawlData,
|
||||||
} = useWebsiteCrawl()
|
} = useWebsiteCrawl()
|
||||||
const {
|
const {
|
||||||
fileList: onlineDriveFileList,
|
onlineDriveFileList,
|
||||||
selectedFileIds,
|
selectedFileIds,
|
||||||
selectedOnlineDriveFileList,
|
selectedOnlineDriveFileList,
|
||||||
clearOnlineDriveData,
|
clearOnlineDriveData,
|
||||||
@ -107,7 +107,7 @@ const CreateFormPipeline = () => {
|
|||||||
const nextBtnDisabled = useMemo(() => {
|
const nextBtnDisabled = useMemo(() => {
|
||||||
if (!datasource) return true
|
if (!datasource) return true
|
||||||
if (datasourceType === DatasourceType.localFile)
|
if (datasourceType === DatasourceType.localFile)
|
||||||
return isShowVectorSpaceFull || !fileList.length || !allFileLoaded
|
return isShowVectorSpaceFull || !localFileList.length || !allFileLoaded
|
||||||
if (datasourceType === DatasourceType.onlineDocument)
|
if (datasourceType === DatasourceType.onlineDocument)
|
||||||
return isShowVectorSpaceFull || !onlineDocuments.length
|
return isShowVectorSpaceFull || !onlineDocuments.length
|
||||||
if (datasourceType === DatasourceType.websiteCrawl)
|
if (datasourceType === DatasourceType.websiteCrawl)
|
||||||
@ -115,7 +115,7 @@ const CreateFormPipeline = () => {
|
|||||||
if (datasourceType === DatasourceType.onlineDrive)
|
if (datasourceType === DatasourceType.onlineDrive)
|
||||||
return isShowVectorSpaceFull || !selectedFileIds.length
|
return isShowVectorSpaceFull || !selectedFileIds.length
|
||||||
return false
|
return false
|
||||||
}, [datasource, datasourceType, isShowVectorSpaceFull, fileList.length, allFileLoaded, onlineDocuments.length, websitePages.length, selectedFileIds.length])
|
}, [datasource, datasourceType, isShowVectorSpaceFull, localFileList.length, allFileLoaded, onlineDocuments.length, websitePages.length, selectedFileIds.length])
|
||||||
|
|
||||||
const fileUploadConfig = useMemo(() => fileUploadConfigResponse ?? {
|
const fileUploadConfig = useMemo(() => fileUploadConfigResponse ?? {
|
||||||
file_size_limit: 15,
|
file_size_limit: 15,
|
||||||
@ -285,7 +285,7 @@ const CreateFormPipeline = () => {
|
|||||||
const {
|
const {
|
||||||
bucket,
|
bucket,
|
||||||
selectedFileIds,
|
selectedFileIds,
|
||||||
fileList: onlineDriveFileList,
|
onlineDriveFileList,
|
||||||
} = dataSourceStore.getState()
|
} = dataSourceStore.getState()
|
||||||
selectedFileIds.forEach((id) => {
|
selectedFileIds.forEach((id) => {
|
||||||
const file = onlineDriveFileList.find(file => file.id === id)
|
const file = onlineDriveFileList.find(file => file.id === id)
|
||||||
@ -354,7 +354,7 @@ const CreateFormPipeline = () => {
|
|||||||
const handleSelectAll = useCallback(() => {
|
const handleSelectAll = useCallback(() => {
|
||||||
const {
|
const {
|
||||||
onlineDocuments,
|
onlineDocuments,
|
||||||
fileList: onlineDriveFileList,
|
onlineDriveFileList,
|
||||||
selectedFileIds,
|
selectedFileIds,
|
||||||
setOnlineDocuments,
|
setOnlineDocuments,
|
||||||
setSelectedFileIds,
|
setSelectedFileIds,
|
||||||
@ -535,7 +535,7 @@ const CreateFormPipeline = () => {
|
|||||||
<div className='flex h-full flex-col pl-2 pt-2'>
|
<div className='flex h-full flex-col pl-2 pt-2'>
|
||||||
<ChunkPreview
|
<ChunkPreview
|
||||||
dataSourceType={datasourceType as DatasourceType}
|
dataSourceType={datasourceType as DatasourceType}
|
||||||
localFiles={fileList.map(file => file.file)}
|
localFiles={localFileList.map(file => file.file)}
|
||||||
onlineDocuments={onlineDocuments}
|
onlineDocuments={onlineDocuments}
|
||||||
websitePages={websitePages}
|
websitePages={websitePages}
|
||||||
onlineDriveFiles={selectedOnlineDriveFileList}
|
onlineDriveFiles={selectedOnlineDriveFileList}
|
||||||
|
|||||||
@ -110,13 +110,13 @@ export const useOnlineDrive = () => {
|
|||||||
|
|
||||||
const clearOnlineDriveData = useCallback(() => {
|
const clearOnlineDriveData = useCallback(() => {
|
||||||
const {
|
const {
|
||||||
setFileList,
|
setOnlineDriveFileList,
|
||||||
setBucket,
|
setBucket,
|
||||||
setPrefix,
|
setPrefix,
|
||||||
setKeywords,
|
setKeywords,
|
||||||
setSelectedFileIds,
|
setSelectedFileIds,
|
||||||
} = dataSourceStore.getState()
|
} = dataSourceStore.getState()
|
||||||
setFileList([])
|
setOnlineDriveFileList([])
|
||||||
setBucket('')
|
setBucket('')
|
||||||
setPrefix([])
|
setPrefix([])
|
||||||
setKeywords('')
|
setKeywords('')
|
||||||
|
|||||||
@ -104,8 +104,8 @@ const Preparation = () => {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
if (datasourceType === DatasourceType.onlineDrive) {
|
if (datasourceType === DatasourceType.onlineDrive) {
|
||||||
const { bucket, fileList, selectedFileIds } = dataSourceStore.getState()
|
const { bucket, onlineDriveFileList, selectedFileIds } = dataSourceStore.getState()
|
||||||
const file = fileList.find(file => file.id === selectedFileIds[0])
|
const file = onlineDriveFileList.find(file => file.id === selectedFileIds[0])
|
||||||
datasourceInfoList.push({
|
datasourceInfoList.push({
|
||||||
bucket,
|
bucket,
|
||||||
id: file?.id,
|
id: file?.id,
|
||||||
|
|||||||
@ -110,8 +110,8 @@ const useBeforeRunForm = ({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (datasourceType === DatasourceType.onlineDrive) {
|
if (datasourceType === DatasourceType.onlineDrive) {
|
||||||
const { bucket, fileList, selectedFileIds } = dataSourceStore.getState()
|
const { bucket, onlineDriveFileList, selectedFileIds } = dataSourceStore.getState()
|
||||||
const file = fileList.find(file => file.id === selectedFileIds[0])
|
const file = onlineDriveFileList.find(file => file.id === selectedFileIds[0])
|
||||||
datasourceInfo = {
|
datasourceInfo = {
|
||||||
bucket,
|
bucket,
|
||||||
id: file?.id,
|
id: file?.id,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user