From 68f5afeba06cdc4c859a3e8061a6ec18b94840fe Mon Sep 17 00:00:00 2001 From: heheer Date: Tue, 14 Jan 2025 20:40:00 +0800 Subject: [PATCH] fix: yuque dataset file folder can enter (#3593) --- packages/global/core/dataset/apiDataset.d.ts | 1 + packages/service/core/dataset/apiDataset/api.ts | 8 +++++++- .../detail/components/Import/diffSource/APIDataset.tsx | 4 ++-- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/packages/global/core/dataset/apiDataset.d.ts b/packages/global/core/dataset/apiDataset.d.ts index 1d64a8a59e8b..3a29d0611685 100644 --- a/packages/global/core/dataset/apiDataset.d.ts +++ b/packages/global/core/dataset/apiDataset.d.ts @@ -5,6 +5,7 @@ export type APIFileItem = { type: 'file' | 'folder'; updateTime: Date; createTime: Date; + canEnter?: boolean; }; export type APIFileServer = { diff --git a/packages/service/core/dataset/apiDataset/api.ts b/packages/service/core/dataset/apiDataset/api.ts index 19818b32fc71..6a7c0cd8d17d 100644 --- a/packages/service/core/dataset/apiDataset/api.ts +++ b/packages/service/core/dataset/apiDataset/api.ts @@ -99,7 +99,13 @@ export const useApiDatasetRequest = ({ apiServer }: { apiServer: APIFileServer } if (files.some((file) => !file.id || !file.name || typeof file.type === 'undefined')) { return Promise.reject('Invalid file data format'); } - return files; + + const formattedFiles = files.map((file) => ({ + ...file, + canEnter: file.type === 'folder' + })); + + return formattedFiles; }; const getFileContent = async ({ teamId, apiFileId }: { teamId: string; apiFileId: string }) => { diff --git a/projects/app/src/pages/dataset/detail/components/Import/diffSource/APIDataset.tsx b/projects/app/src/pages/dataset/detail/components/Import/diffSource/APIDataset.tsx index e261a959a0c5..a0178823b52d 100644 --- a/projects/app/src/pages/dataset/detail/components/Import/diffSource/APIDataset.tsx +++ b/projects/app/src/pages/dataset/detail/components/Import/diffSource/APIDataset.tsx @@ -49,7 +49,6 @@ const CustomAPIFileInput = () => { parentId: '', parentName: '' }); - const [parentUuid, setParentUuid] = useState(''); const [paths, setPaths] = useState([]); const [searchKey, setSearchKey] = useState(''); @@ -128,7 +127,7 @@ const CustomAPIFileInput = () => { const handleItemClick = useCallback( (item: APIFileItem) => { - if (item.type === 'folder') { + if (item.canEnter) { setPaths((state) => [...state, { parentId: item.id, parentName: item.name }]); return setParent({ parentId: item.id, @@ -251,6 +250,7 @@ const CustomAPIFileInput = () => { {item.name} + {item.canEnter && } ); })}