import React, { useMemo } from 'react'; import { Box, Flex } from '@chakra-ui/react'; import dynamic from 'next/dynamic'; import { ImportDataSourceEnum } from '@fastgpt/global/core/dataset/constants'; import { useContextSelector } from 'use-context-selector'; import DatasetImportContextProvider, { DatasetImportContext } from './Context'; const FileLocal = dynamic(() => import('./diffSource/FileLocal')); const FileLink = dynamic(() => import('./diffSource/FileLink')); const FileCustomText = dynamic(() => import('./diffSource/FileCustomText')); const TableLocal = dynamic(() => import('./diffSource/TableLocal')); const ExternalFileCollection = dynamic(() => import('./diffSource/ExternalFile')); const APIDatasetCollection = dynamic(() => import('./diffSource/APIDataset')); const ReTraining = dynamic(() => import('./diffSource/ReTraining')); const ImportDataset = () => { const importSource = useContextSelector(DatasetImportContext, (v) => v.importSource); const ImportComponent = useMemo(() => { if (importSource === ImportDataSourceEnum.reTraining) return ReTraining; if (importSource === ImportDataSourceEnum.fileLocal) return FileLocal; if (importSource === ImportDataSourceEnum.fileLink) return FileLink; if (importSource === ImportDataSourceEnum.fileCustom) return FileCustomText; if (importSource === ImportDataSourceEnum.csvTable) return TableLocal; if (importSource === ImportDataSourceEnum.externalFile) return ExternalFileCollection; if (importSource === ImportDataSourceEnum.apiDataset) return APIDatasetCollection; }, [importSource]); return ImportComponent ? ( ) : null; }; const Render = () => { return ( ); }; export default React.memo(Render);