feat(store): add findNode & findEdge actions

# What's changed?

* deprecate computed getters `getNode` & `getEdge`
* add actions instead
This commit is contained in:
braks
2022-07-27 22:49:00 +02:00
committed by Braks
parent 49d51ccf10
commit f2321f2626
2 changed files with 23 additions and 2 deletions
+17
View File
@@ -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,
+6 -2
View File
@@ -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