feat(store): add findNode & findEdge actions
# What's changed? * deprecate computed getters `getNode` & `getEdge` * add actions instead
This commit is contained in:
@@ -301,6 +301,21 @@ export default (state: State, getters: ComputedGetters): Actions => {
|
|||||||
state.hooks.edgesChange.trigger(changes)
|
state.hooks.edgesChange.trigger(changes)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const nodeIds = $computed(() => state.nodes.map((n) => n.id))
|
||||||
|
const edgeIds = $computed(() => state.edges.map((e) => e.id))
|
||||||
|
|
||||||
|
const findNode: Actions['findNode'] = (id) => {
|
||||||
|
if (state.nodes && !nodeIds.length) return state.nodes.find((node) => node.id === id)
|
||||||
|
|
||||||
|
return state.nodes[nodeIds.indexOf(id)]
|
||||||
|
}
|
||||||
|
|
||||||
|
const findEdge: Actions['findEdge'] = (id) => {
|
||||||
|
if (state.edges && !edgeIds.length) return state.edges.find((edge) => edge.id === id)
|
||||||
|
|
||||||
|
return state.edges[edgeIds.indexOf(id)]
|
||||||
|
}
|
||||||
|
|
||||||
const updateEdge: Actions['updateEdge'] = (oldEdge, newConnection) =>
|
const updateEdge: Actions['updateEdge'] = (oldEdge, newConnection) =>
|
||||||
updateEdgeAction(oldEdge, newConnection, state.edges, addEdges)
|
updateEdgeAction(oldEdge, newConnection, state.edges, addEdges)
|
||||||
|
|
||||||
@@ -380,6 +395,8 @@ export default (state: State, getters: ComputedGetters): Actions => {
|
|||||||
addEdges,
|
addEdges,
|
||||||
removeNodes,
|
removeNodes,
|
||||||
removeEdges,
|
removeEdges,
|
||||||
|
findNode,
|
||||||
|
findEdge,
|
||||||
updateEdge,
|
updateEdge,
|
||||||
applyEdgeChanges,
|
applyEdgeChanges,
|
||||||
applyNodeChanges,
|
applyNodeChanges,
|
||||||
|
|||||||
@@ -145,6 +145,10 @@ export interface Actions extends ViewportFunctions {
|
|||||||
removeNodes: RemoveNodes
|
removeNodes: RemoveNodes
|
||||||
/** remove edges from state */
|
/** remove edges from state */
|
||||||
removeEdges: RemoveEdges
|
removeEdges: RemoveEdges
|
||||||
|
/** find a node by id */
|
||||||
|
findNode: (id: string) => GraphNode | undefined
|
||||||
|
/** find an edge by id */
|
||||||
|
findEdge: (id: string) => GraphEdge | undefined
|
||||||
/** updates an edge */
|
/** updates an edge */
|
||||||
updateEdge: UpdateEdge
|
updateEdge: UpdateEdge
|
||||||
/** applies default edge change handler */
|
/** applies default edge change handler */
|
||||||
@@ -198,9 +202,9 @@ export interface Getters {
|
|||||||
getNodes: GraphNode[]
|
getNodes: GraphNode[]
|
||||||
/** filters hidden edges */
|
/** filters hidden edges */
|
||||||
getEdges: GraphEdge[]
|
getEdges: GraphEdge[]
|
||||||
/** returns a node by id */
|
/** @deprecated use {@link Actions.findNode} instead; returns a node by id */
|
||||||
getNode: (id: string) => GraphNode | undefined
|
getNode: (id: string) => GraphNode | undefined
|
||||||
/** returns an edge by id */
|
/** @deprecated use {@link Actions.findEdge} instead; returns an edge by id */
|
||||||
getEdge: (id: string) => GraphEdge | undefined
|
getEdge: (id: string) => GraphEdge | undefined
|
||||||
/** returns all currently selected elements */
|
/** returns all currently selected elements */
|
||||||
getSelectedElements: FlowElements
|
getSelectedElements: FlowElements
|
||||||
|
|||||||
Reference in New Issue
Block a user