fix: nodeExtraData might be undefined (#21856)
This commit is contained in:
@@ -34,15 +34,14 @@ export const useNodesExtraData = () => {
|
|||||||
export const useAvailableBlocks = (nodeType?: BlockEnum, isInIteration?: boolean, isInLoop?: boolean) => {
|
export const useAvailableBlocks = (nodeType?: BlockEnum, isInIteration?: boolean, isInLoop?: boolean) => {
|
||||||
const nodesExtraData = useNodesExtraData()
|
const nodesExtraData = useNodesExtraData()
|
||||||
const availablePrevBlocks = useMemo(() => {
|
const availablePrevBlocks = useMemo(() => {
|
||||||
if (!nodeType)
|
if (!nodeType || !nodesExtraData[nodeType])
|
||||||
return []
|
return []
|
||||||
return nodesExtraData[nodeType].availablePrevNodes || []
|
return nodesExtraData[nodeType].availablePrevNodes || []
|
||||||
}, [nodeType, nodesExtraData])
|
}, [nodeType, nodesExtraData])
|
||||||
|
|
||||||
const availableNextBlocks = useMemo(() => {
|
const availableNextBlocks = useMemo(() => {
|
||||||
if (!nodeType)
|
if (!nodeType || !nodesExtraData[nodeType])
|
||||||
return []
|
return []
|
||||||
|
|
||||||
return nodesExtraData[nodeType].availableNextNodes || []
|
return nodesExtraData[nodeType].availableNextNodes || []
|
||||||
}, [nodeType, nodesExtraData])
|
}, [nodeType, nodesExtraData])
|
||||||
|
|
||||||
@@ -55,10 +54,7 @@ export const useAvailableBlocks = (nodeType?: BlockEnum, isInIteration?: boolean
|
|||||||
if (isInLoop && (nType === BlockEnum.Iteration || nType === BlockEnum.Loop || nType === BlockEnum.End))
|
if (isInLoop && (nType === BlockEnum.Iteration || nType === BlockEnum.Loop || nType === BlockEnum.End))
|
||||||
return false
|
return false
|
||||||
|
|
||||||
if (!isInLoop && nType === BlockEnum.LoopEnd)
|
return !(!isInLoop && nType === BlockEnum.LoopEnd)
|
||||||
return false
|
|
||||||
|
|
||||||
return true
|
|
||||||
}),
|
}),
|
||||||
availableNextBlocks: availableNextBlocks.filter((nType) => {
|
availableNextBlocks: availableNextBlocks.filter((nType) => {
|
||||||
if (isInIteration && (nType === BlockEnum.Iteration || nType === BlockEnum.Loop || nType === BlockEnum.End))
|
if (isInIteration && (nType === BlockEnum.Iteration || nType === BlockEnum.Loop || nType === BlockEnum.End))
|
||||||
@@ -67,10 +63,7 @@ export const useAvailableBlocks = (nodeType?: BlockEnum, isInIteration?: boolean
|
|||||||
if (isInLoop && (nType === BlockEnum.Iteration || nType === BlockEnum.Loop || nType === BlockEnum.End))
|
if (isInLoop && (nType === BlockEnum.Iteration || nType === BlockEnum.Loop || nType === BlockEnum.End))
|
||||||
return false
|
return false
|
||||||
|
|
||||||
if (!isInLoop && nType === BlockEnum.LoopEnd)
|
return !(!isInLoop && nType === BlockEnum.LoopEnd)
|
||||||
return false
|
|
||||||
|
|
||||||
return true
|
|
||||||
}),
|
}),
|
||||||
}
|
}
|
||||||
}, [isInIteration, availablePrevBlocks, availableNextBlocks, isInLoop])
|
}, [isInIteration, availablePrevBlocks, availableNextBlocks, isInLoop])
|
||||||
|
Reference in New Issue
Block a user