|
import { useFetchFlow } from '@/hooks/flow-hooks'; |
|
import { RAGFlowNodeType } from '@/interfaces/database/flow'; |
|
import { useCallback } from 'react'; |
|
import useGraphStore from '../store'; |
|
import { buildDslComponentsByGraph } from '../utils'; |
|
|
|
export const useBuildDslData = () => { |
|
const { data } = useFetchFlow(); |
|
const { nodes, edges } = useGraphStore((state) => state); |
|
|
|
const buildDslData = useCallback( |
|
(currentNodes?: RAGFlowNodeType[]) => { |
|
const dslComponents = buildDslComponentsByGraph( |
|
currentNodes ?? nodes, |
|
edges, |
|
data.dsl.components, |
|
); |
|
|
|
return { |
|
...data.dsl, |
|
graph: { nodes: currentNodes ?? nodes, edges }, |
|
components: dslComponents, |
|
}; |
|
}, |
|
[data.dsl, edges, nodes], |
|
); |
|
|
|
return { buildDslData }; |
|
}; |
|
|