refactor: update CrawledResult and WebsiteCrawl components to handle showPreview prop and adjust previewIndex logic

This commit is contained in:
twwu 2025-07-10 15:43:36 +08:00
parent c39746181d
commit de6867f875
3 changed files with 14 additions and 4 deletions

View File

@ -15,6 +15,7 @@ type CrawledResultProps = {
checkedList: CrawlResultItem[]
onSelectedChange: (selected: CrawlResultItem[]) => void
onPreview?: (payload: CrawlResultItem, index: number) => void
showPreview?: boolean
usedTime: number
isMultipleChoice?: boolean
}
@ -27,6 +28,7 @@ const CrawledResult = ({
onSelectedChange,
usedTime,
onPreview,
showPreview = false,
isMultipleChoice = true,
}: CrawledResultProps) => {
const { t } = useTranslation()
@ -81,7 +83,7 @@ const CrawledResult = ({
onCheckChange={handleItemCheckChange(item)}
isPreview={index === previewIndex}
onPreview={handlePreview.bind(null, index)}
showPreview={!!onPreview}
showPreview={showPreview}
isMultipleChoice={isMultipleChoice}
/>
))}

View File

@ -73,7 +73,7 @@ const WebsiteCrawl = ({
setCrawlResult(undefined)
setCurrentWebsite(undefined)
setWebsitePages([])
setPreviewIndex(0)
setPreviewIndex(-1)
setCrawledNum(0)
setTotalNum(0)
setCrawlErrorMessage('')
@ -195,6 +195,7 @@ const WebsiteCrawl = ({
usedTime={Number.parseFloat(crawlResult?.time_consuming as string) || 0}
previewIndex={previewIndex}
onPreview={handlePreview}
showPreview={!isInPipeline}
isMultipleChoice={!isInPipeline} // only support single choice in test run
/>
)}

View File

@ -315,7 +315,14 @@ const CreateFormPipeline = () => {
}, [dataSourceStore, onClickPreview])
const handleSelectAll = useCallback(() => {
const { setOnlineDocuments, setSelectedFileKeys, setSelectedPagesId } = dataSourceStore.getState()
const {
onlineDocuments,
fileList: onlineDriveFileList,
selectedFileKeys,
setOnlineDocuments,
setSelectedFileKeys,
setSelectedPagesId,
} = dataSourceStore.getState()
if (datasourceType === DatasourceType.onlineDocument) {
const allIds = currentWorkspace?.pages.map(page => page.page_id) || []
if (onlineDocuments.length < allIds.length) {
@ -337,7 +344,7 @@ const CreateFormPipeline = () => {
else
setSelectedFileKeys([])
}
}, [PagesMapAndSelectedPagesId, currentWorkspace?.pages, dataSourceStore, datasourceType, onlineDocuments.length, onlineDriveFileList, selectedFileKeys.length])
}, [PagesMapAndSelectedPagesId, currentWorkspace?.pages, dataSourceStore, datasourceType])
if (isFetchingPipelineInfo) {
return (