wwf
3 天以前 a430284aa21e3ae1f0d5654e55b2ad2852519cc2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
import type { StateCreator } from 'zustand'
import type {
  Node,
} from '@/app/components/workflow/types'
import type {
  VariableAssignerNodeType,
} from '@/app/components/workflow/nodes/variable-assigner/types'
import type {
  NodeTracing,
} from '@/types/workflow'
 
export type NodeSliceShape = {
  showSingleRunPanel: boolean
  setShowSingleRunPanel: (showSingleRunPanel: boolean) => void
  nodeAnimation: boolean
  setNodeAnimation: (nodeAnimation: boolean) => void
  candidateNode?: Node
  setCandidateNode: (candidateNode?: Node) => void
  nodeMenu?: {
    top: number
    left: number
    nodeId: string
  }
  setNodeMenu: (nodeMenu: NodeSliceShape['nodeMenu']) => void
  showAssignVariablePopup?: {
    nodeId: string
    nodeData: Node['data']
    variableAssignerNodeId: string
    variableAssignerNodeData: VariableAssignerNodeType
    variableAssignerNodeHandleId: string
    parentNode?: Node
    x: number
    y: number
  }
  setShowAssignVariablePopup: (showAssignVariablePopup: NodeSliceShape['showAssignVariablePopup']) => void
  hoveringAssignVariableGroupId?: string
  setHoveringAssignVariableGroupId: (hoveringAssignVariableGroupId?: string) => void
  connectingNodePayload?: { nodeId: string; nodeType: string; handleType: string; handleId: string | null }
  setConnectingNodePayload: (startConnectingPayload?: NodeSliceShape['connectingNodePayload']) => void
  enteringNodePayload?: {
    nodeId: string
    nodeData: VariableAssignerNodeType
  }
  setEnteringNodePayload: (enteringNodePayload?: NodeSliceShape['enteringNodePayload']) => void
  iterTimes: number
  setIterTimes: (iterTimes: number) => void
  loopTimes: number
  setLoopTimes: (loopTimes: number) => void
  iterParallelLogMap: Map<string, Map<string, NodeTracing[]>>
  setIterParallelLogMap: (iterParallelLogMap: Map<string, Map<string, NodeTracing[]>>) => void
}
 
export const createNodeSlice: StateCreator<NodeSliceShape> = set => ({
  showSingleRunPanel: false,
  setShowSingleRunPanel: showSingleRunPanel => set(() => ({ showSingleRunPanel })),
  nodeAnimation: false,
  setNodeAnimation: nodeAnimation => set(() => ({ nodeAnimation })),
  candidateNode: undefined,
  setCandidateNode: candidateNode => set(() => ({ candidateNode })),
  nodeMenu: undefined,
  setNodeMenu: nodeMenu => set(() => ({ nodeMenu })),
  showAssignVariablePopup: undefined,
  setShowAssignVariablePopup: showAssignVariablePopup => set(() => ({ showAssignVariablePopup })),
  hoveringAssignVariableGroupId: undefined,
  setHoveringAssignVariableGroupId: hoveringAssignVariableGroupId => set(() => ({ hoveringAssignVariableGroupId })),
  connectingNodePayload: undefined,
  setConnectingNodePayload: connectingNodePayload => set(() => ({ connectingNodePayload })),
  enteringNodePayload: undefined,
  setEnteringNodePayload: enteringNodePayload => set(() => ({ enteringNodePayload })),
  iterTimes: 1,
  setIterTimes: iterTimes => set(() => ({ iterTimes })),
  loopTimes: 1,
  setLoopTimes: loopTimes => set(() => ({ loopTimes })),
  iterParallelLogMap: new Map<string, Map<string, NodeTracing[]>>(),
  setIterParallelLogMap: iterParallelLogMap => set(() => ({ iterParallelLogMap })),
})