diff --git a/packages/core/src/store/actions.ts b/packages/core/src/store/actions.ts index b7fecbe4..d541d77a 100644 --- a/packages/core/src/store/actions.ts +++ b/packages/core/src/store/actions.ts @@ -413,7 +413,8 @@ export function useActions( } const addNodes: Actions['addNodes'] = (nodes) => { - const nextNodes = nodes instanceof Function ? nodes(state.nodes) : nodes + let nextNodes = nodes instanceof Function ? nodes(state.nodes) : nodes + nextNodes = Array.isArray(nextNodes) ? nextNodes : [nextNodes] const graphNodes = createGraphNodes(nextNodes, state.nodes, findNode, state.hooks.error.trigger) @@ -425,7 +426,8 @@ export function useActions( } const addEdges: Actions['addEdges'] = (params) => { - const nextEdges = params instanceof Function ? params(state.edges) : params + let nextEdges = params instanceof Function ? params(state.edges) : params + nextEdges = Array.isArray(nextEdges) ? nextEdges : [nextEdges] const validEdges = state.isValidConnection ? nextEdges.filter((edge) => diff --git a/packages/core/src/types/store.ts b/packages/core/src/types/store.ts index b0a53e1b..e0fac059 100644 --- a/packages/core/src/types/store.ts +++ b/packages/core/src/types/store.ts @@ -150,7 +150,7 @@ export type SetNodes = (nodes: Node[] | ((nodes: GraphNode[]) => Node[])) => voi export type SetEdges = (edges: Edge[] | ((edges: GraphEdge[]) => Edge[])) => void -export type AddNodes = (nodes: Node[] | ((nodes: GraphNode[]) => Node[])) => void +export type AddNodes = (nodes: Node | Node[] | ((nodes: GraphNode[]) => Node | Node[])) => void export type RemoveNodes = ( nodes: (Node[] | string[]) | ((nodes: GraphNode[]) => Node[] | string[]), @@ -159,7 +159,12 @@ export type RemoveNodes = ( export type RemoveEdges = (edges: (Edge[] | string[]) | ((edges: GraphEdge[]) => Edge[] | string[])) => void -export type AddEdges = (edgesOrConnections: (Edge | Connection)[] | ((edges: GraphEdge[]) => (Edge | Connection)[])) => void +export type AddEdges = ( + edgesOrConnections: + | (Edge | Connection) + | (Edge | Connection)[] + | ((edges: GraphEdge[]) => (Edge | Connection) | (Edge | Connection)[]), +) => void export type UpdateEdge = (oldEdge: GraphEdge, newConnection: Connection, shouldReplaceId?: boolean) => GraphEdge | false