mirror of https://github.com/langgenius/dify.git
23 lines
574 B
TypeScript
23 lines
574 B
TypeScript
import {
|
|
useCallback,
|
|
useMemo,
|
|
useState,
|
|
} from 'react'
|
|
import type { Node } from './types'
|
|
|
|
export const useWorkflow = (nodes: Node[], initialSelectedNodeId?: string) => {
|
|
const [selectedNodeId, setSelectedNodeId] = useState(initialSelectedNodeId)
|
|
|
|
const handleSelectedNodeIdChange = useCallback((nodeId: string) => setSelectedNodeId(nodeId), [])
|
|
|
|
const selectedNode = useMemo(() => {
|
|
return nodes.find(node => node.id === selectedNodeId)
|
|
}, [nodes, selectedNodeId])
|
|
|
|
return {
|
|
selectedNodeId,
|
|
selectedNode,
|
|
handleSelectedNodeIdChange,
|
|
}
|
|
}
|