refactor(core): trigger el functions before checking arr length
Signed-off-by: braks <78412429+bcakmakoglu@users.noreply.github.com>
This commit is contained in:
@@ -286,24 +286,25 @@ export function useActions(state: State, getters: ComputedGetters): Actions {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const setNodes: Actions['setNodes'] = (nodes) => {
|
const setNodes: Actions['setNodes'] = (nodes) => {
|
||||||
if (!state.initialized && !nodes.length) return
|
const nextNodes = nodes instanceof Function ? nodes(state.nodes) : nodes
|
||||||
if (!state.nodes) state.nodes = []
|
|
||||||
|
|
||||||
const curr = nodes instanceof Function ? nodes(state.nodes) : nodes
|
if (!state.initialized && !nextNodes.length) return
|
||||||
|
|
||||||
state.nodes = createGraphNodes(curr, findNode, state.nodes)
|
state.nodes = createGraphNodes(nextNodes, findNode, state.nodes)
|
||||||
}
|
}
|
||||||
|
|
||||||
const setEdges: Actions['setEdges'] = (edges) => {
|
const setEdges: Actions['setEdges'] = (edges) => {
|
||||||
if (!state.initialized && !edges.length) return
|
const nextEdges = edges instanceof Function ? edges(state.edges) : edges
|
||||||
const curr = edges instanceof Function ? edges(state.edges) : edges
|
|
||||||
|
|
||||||
state.edges = curr.reduce<GraphEdge[]>((res, edge) => {
|
if (!state.initialized && !nextEdges.length) return
|
||||||
|
|
||||||
|
state.edges = nextEdges.reduce<GraphEdge[]>((res, edge) => {
|
||||||
const sourceNode = findNode(edge.source)!
|
const sourceNode = findNode(edge.source)!
|
||||||
const targetNode = findNode(edge.target)!
|
const targetNode = findNode(edge.target)!
|
||||||
|
|
||||||
const missingSource = !sourceNode || typeof sourceNode === 'undefined'
|
const missingSource = !sourceNode || typeof sourceNode === 'undefined'
|
||||||
const missingTarget = !targetNode || typeof targetNode === 'undefined'
|
const missingTarget = !targetNode || typeof targetNode === 'undefined'
|
||||||
|
|
||||||
if (missingSource) warn(`Couldn't create edge for source id: ${edge.source}; edge id: ${edge.id}`)
|
if (missingSource) warn(`Couldn't create edge for source id: ${edge.source}; edge id: ${edge.id}`)
|
||||||
if (missingTarget) warn(`Couldn't create edge for target id: ${edge.target}; edge id: ${edge.id}`)
|
if (missingTarget) warn(`Couldn't create edge for target id: ${edge.target}; edge id: ${edge.id}`)
|
||||||
if (missingSource || missingTarget) return res
|
if (missingSource || missingTarget) return res
|
||||||
@@ -321,26 +322,28 @@ export function useActions(state: State, getters: ComputedGetters): Actions {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const setElements: Actions['setElements'] = (elements) => {
|
const setElements: Actions['setElements'] = (elements) => {
|
||||||
if (!state.initialized && !elements.length) return
|
const nextElements = elements instanceof Function ? elements([...state.nodes, ...state.edges]) : elements
|
||||||
const curr = elements instanceof Function ? elements([...state.nodes, ...state.edges]) : elements
|
|
||||||
|
|
||||||
setNodes(curr.filter(isNode))
|
if (!state.initialized && !nextElements.length) return
|
||||||
setEdges(curr.filter(isEdge))
|
|
||||||
|
setNodes(nextElements.filter(isNode))
|
||||||
|
setEdges(nextElements.filter(isEdge))
|
||||||
}
|
}
|
||||||
|
|
||||||
const addNodes: Actions['addNodes'] = (nodes) => {
|
const addNodes: Actions['addNodes'] = (nodes) => {
|
||||||
const curr = nodes instanceof Function ? nodes(state.nodes) : nodes
|
const nextNodes = nodes instanceof Function ? nodes(state.nodes) : nodes
|
||||||
|
|
||||||
|
const graphNodes = createGraphNodes(nextNodes, findNode, state.nodes)
|
||||||
|
|
||||||
const graphNodes = createGraphNodes(curr, findNode, state.nodes)
|
|
||||||
const changes = graphNodes.map(createAdditionChange)
|
const changes = graphNodes.map(createAdditionChange)
|
||||||
|
|
||||||
if (changes.length) state.hooks.nodesChange.trigger(changes)
|
if (changes.length) state.hooks.nodesChange.trigger(changes)
|
||||||
}
|
}
|
||||||
|
|
||||||
const addEdges: Actions['addEdges'] = (params) => {
|
const addEdges: Actions['addEdges'] = (params) => {
|
||||||
const curr = params instanceof Function ? params(state.edges) : params
|
const nextEdges = params instanceof Function ? params(state.edges) : params
|
||||||
|
|
||||||
const changes = curr.reduce((acc, param) => {
|
const changes = nextEdges.reduce((acc, param) => {
|
||||||
const edge = addEdgeToStore(
|
const edge = addEdgeToStore(
|
||||||
{
|
{
|
||||||
...param,
|
...param,
|
||||||
@@ -348,12 +351,14 @@ export function useActions(state: State, getters: ComputedGetters): Actions {
|
|||||||
},
|
},
|
||||||
state.edges,
|
state.edges,
|
||||||
)
|
)
|
||||||
|
|
||||||
if (edge) {
|
if (edge) {
|
||||||
const sourceNode = findNode(edge.source)!
|
const sourceNode = findNode(edge.source)!
|
||||||
const targetNode = findNode(edge.target)!
|
const targetNode = findNode(edge.target)!
|
||||||
|
|
||||||
const missingSource = !sourceNode || typeof sourceNode === 'undefined'
|
const missingSource = !sourceNode || typeof sourceNode === 'undefined'
|
||||||
const missingTarget = !targetNode || typeof targetNode === 'undefined'
|
const missingTarget = !targetNode || typeof targetNode === 'undefined'
|
||||||
|
|
||||||
if (missingSource) warn(`Couldn't create edge for source id: ${edge.source}; edge id: ${edge.id}`)
|
if (missingSource) warn(`Couldn't create edge for source id: ${edge.source}; edge id: ${edge.id}`)
|
||||||
if (missingTarget) warn(`Couldn't create edge for target id: ${edge.target}; edge id: ${edge.id}`)
|
if (missingTarget) warn(`Couldn't create edge for target id: ${edge.target}; edge id: ${edge.id}`)
|
||||||
if (missingTarget || missingSource) return acc
|
if (missingTarget || missingSource) return acc
|
||||||
|
|||||||
Reference in New Issue
Block a user