From 5e2b60664f6e10e0822e38f47fc50ac230e214f1 Mon Sep 17 00:00:00 2001 From: twwu Date: Tue, 8 Jul 2025 14:26:55 +0800 Subject: [PATCH] fix: Improve item selection logic and reset selected file list on folder open --- .../data-source/online-drive/file-list/list/item.tsx | 5 +++-- .../create-from-pipeline/data-source/online-drive/index.tsx | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/list/item.tsx b/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/list/item.tsx index fb8d5d776b..247f8c21c7 100644 --- a/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/list/item.tsx +++ b/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/file-list/list/item.tsx @@ -39,9 +39,10 @@ const Item = ({ const handleClickItem = useCallback((e: React.MouseEvent) => { e.stopPropagation() if (disabled) return - if (isBucket || isFolder) + if (isBucket || isFolder) { onOpen(file) - if (isBucket) return // Do not select bucket + return + } onSelect(file) }, [disabled, file, isBucket, isFolder, onOpen, onSelect]) diff --git a/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/index.tsx b/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/index.tsx index aea1fee267..052120a4b2 100644 --- a/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/index.tsx +++ b/web/app/components/datasets/documents/create-from-pipeline/data-source/online-drive/index.tsx @@ -112,13 +112,14 @@ const OnlineDrive = ({ }, [dataSourceStore, isInPipeline, selectedFileList]) const handleOpenFolder = useCallback((file: OnlineDriveFile) => { - const { setPrefix, setBucket, setFileList } = dataSourceStore.getState() + const { setPrefix, setBucket, setFileList, setSelectedFileList } = dataSourceStore.getState() if (file.type === OnlineDriveFileType.file) return setFileList([]) if (file.type === OnlineDriveFileType.bucket) { setBucket(file.displayName) } else { + setSelectedFileList([]) const displayName = file.displayName.endsWith('/') ? file.displayName.slice(0, -1) : file.displayName const newPrefix = produce(prefix, (draft) => { draft.push(displayName)