feat(web): 完成分支节点动态改变handle
This commit is contained in:
@@ -8,7 +8,7 @@ import {
|
||||
type OnEdgesChange,
|
||||
type OnNodesChange,
|
||||
} from '@xyflow/react'
|
||||
import {filter, find, isEqual} from 'licia'
|
||||
import {contain, filter, find, isEqual} from 'licia'
|
||||
import {create} from 'zustand/react'
|
||||
|
||||
export const useFlowStore = create<{
|
||||
@@ -24,6 +24,8 @@ export const useFlowStore = create<{
|
||||
edges: Edge[],
|
||||
getEdges: () => Edge[],
|
||||
onEdgesChange: OnEdgesChange,
|
||||
removeEdge: (id: string) => void,
|
||||
removeEdges: (ids: string[]) => void,
|
||||
setEdges: (edges: Edge[]) => void,
|
||||
|
||||
onConnect: OnConnect,
|
||||
@@ -61,6 +63,16 @@ export const useFlowStore = create<{
|
||||
edges: applyEdgeChanges(changes, get().edges),
|
||||
})
|
||||
},
|
||||
removeEdge: id => {
|
||||
set({
|
||||
edges: filter(get().edges, edge => !isEqual(edge.id, id)),
|
||||
})
|
||||
},
|
||||
removeEdges: ids => {
|
||||
set({
|
||||
edges: filter(get().edges, edge => !contain(ids, edge.id)),
|
||||
})
|
||||
},
|
||||
setEdges: edges => set({edges}),
|
||||
|
||||
onConnect: connection => {
|
||||
|
||||
Reference in New Issue
Block a user