dify/web/app/components/workflow/hooks.ts

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,
}
}