Files
dify/web/app/components/workflow/store.ts
StyleZhang 9b577fa32c chore
2024-02-23 11:31:46 +08:00

24 lines
668 B
TypeScript

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