From 77950e48c76f4a3b29d01831d43039caba29888a Mon Sep 17 00:00:00 2001
From: wwf <1971391498@qq.com>
Date: 星期二, 18 十一月 2025 14:12:42 +0800
Subject: [PATCH] 修改
---
app/components/workflow/nodes/knowledge-retrieval/node.tsx | 43 +++++++++++++++++++++++--------------------
1 files changed, 23 insertions(+), 20 deletions(-)
diff --git a/app/components/workflow/nodes/knowledge-retrieval/node.tsx b/app/components/workflow/nodes/knowledge-retrieval/node.tsx
index c24c3e0..ee0e475 100644
--- a/app/components/workflow/nodes/knowledge-retrieval/node.tsx
+++ b/app/components/workflow/nodes/knowledge-retrieval/node.tsx
@@ -1,30 +1,33 @@
-import { type FC, useEffect, useState } from 'react'
+import { type FC, useEffect, useRef, useState } from 'react'
import React from 'react'
import type { KnowledgeRetrievalNodeType } from './types'
import { Folder } from '@/app/components/base/icons/src/vender/solid/files'
import type { NodeProps } from '@/app/components/workflow/types'
+import { fetchDatasets } from '@/service/datasets'
import type { DataSet } from '@/models/datasets'
-import { useDatasetsDetailStore } from '../../datasets-detail-store/store'
const Node: FC<NodeProps<KnowledgeRetrievalNodeType>> = ({
data,
}) => {
const [selectedDatasets, setSelectedDatasets] = useState<DataSet[]>([])
- const datasetsDetail = useDatasetsDetailStore(s => s.datasetsDetail)
-
+ const updateTime = useRef(0)
useEffect(() => {
- if (data.dataset_ids?.length > 0) {
- const dataSetsWithDetail = data.dataset_ids.reduce<DataSet[]>((acc, id) => {
- if (datasetsDetail[id])
- acc.push(datasetsDetail[id])
- return acc
- }, [])
- setSelectedDatasets(dataSetsWithDetail)
- }
- else {
- setSelectedDatasets([])
- }
- }, [data.dataset_ids, datasetsDetail])
+ (async () => {
+ updateTime.current = updateTime.current + 1
+ const currUpdateTime = updateTime.current
+
+ if (data.dataset_ids?.length > 0) {
+ const { data: dataSetsWithDetail } = await fetchDatasets({ url: '/datasets', params: { page: 1, ids: data.dataset_ids } })
+ // avoid old data overwrite new data
+ if (currUpdateTime < updateTime.current)
+ return
+ setSelectedDatasets(dataSetsWithDetail)
+ }
+ else {
+ setSelectedDatasets([])
+ }
+ })()
+ }, [data.dataset_ids])
if (!selectedDatasets.length)
return null
@@ -33,11 +36,11 @@
<div className='mb-1 px-3 py-1'>
<div className='space-y-0.5'>
{selectedDatasets.map(({ id, name }) => (
- <div key={id} className='flex h-[26px] items-center rounded-md bg-workflow-block-parma-bg px-1 text-xs font-normal text-gray-700'>
- <div className='mr-1 shrink-0 rounded-md border-[0.5px] border-[#E0EAFF] bg-[#F5F8FF] p-1'>
- <Folder className='h-3 w-3 text-[#444CE7]' />
+ <div key={id} className='flex items-center h-[26px] bg-workflow-block-parma-bg rounded-md px-1 text-xs font-normal text-gray-700'>
+ <div className='mr-1 shrink-0 p-1 bg-[#F5F8FF] rounded-md border-[0.5px] border-[#E0EAFF]'>
+ <Folder className='w-3 h-3 text-[#444CE7]' />
</div>
- <div className='system-xs-regular w-0 grow truncate text-text-secondary'>
+ <div className='grow w-0 text-text-secondary system-xs-regular truncate'>
{name}
</div>
</div>
--
Gitblit v1.8.0