Files
dify/web/app/components/workflow/store.ts
StyleZhang 94cda3e837 chore
2024-02-22 20:10:58 +08:00

22 lines
633 B
TypeScript

import { create } from 'zustand'
import type { EdgeMouseHandler } from 'reactflow'
type State = {
selectedNodeId: string
hoveringEdgeId: string
}
type Action = {
handleSelectedNodeId: (selectedNodeId: State['selectedNodeId']) => void
handleEnterEdge: EdgeMouseHandler
handleLeaveEdge: EdgeMouseHandler
}
export const useStore = create<State & Action>(set => ({
selectedNodeId: '',
handleSelectedNodeId: selectedNodeId => set(() => ({ selectedNodeId })),
hoveringEdgeId: '',
handleEnterEdge: (_, edge) => set(() => ({ hoveringEdgeId: edge.id })),
handleLeaveEdge: () => set(() => ({ hoveringEdgeId: '' })),
}))