fix(workflow-variable-block): handle undefined environment and conversation variables

Add null checks for environmentVariables and conversationVariables in variable validation logic to prevent runtime errors when these props are undefined
pull/21802/head
Mminamiyama 10 months ago
parent bcf560870f
commit 7bdf234ab3

@ -51,8 +51,8 @@ const WorkflowVariableBlockComponent = ({
variables,
workflowNodesMap = {},
getVarType,
environmentVariables = [],
conversationVariables = [],
environmentVariables,
conversationVariables,
}: WorkflowVariableBlockComponentProps) => {
const { t } = useTranslation()
const [editor] = useLexicalComposerContext()
@ -73,13 +73,17 @@ const WorkflowVariableBlockComponent = ({
const isException = isExceptionVariable(varName, node?.type)
let variableValid = true
if (isEnv)
variableValid = environmentVariables.some(v => v.variable === `${variables?.[0] ?? ''}.${variables?.[1] ?? ''}`)
else if (isChatVar)
variableValid = conversationVariables.some(v => v.variable === `${variables?.[0] ?? ''}.${variables?.[1] ?? ''}`)
else variableValid = !!node
if (isEnv) {
if (environmentVariables)
variableValid = environmentVariables.some(v => v.variable === `${variables?.[0] ?? ''}.${variables?.[1] ?? ''}`)
}
else if (isChatVar) {
if (conversationVariables)
variableValid = conversationVariables.some(v => v.variable === `${variables?.[0] ?? ''}.${variables?.[1] ?? ''}`)
}
else {
variableValid = !!node
}
const reactflow = useReactFlow()
const store = useStoreApi()

@ -32,7 +32,7 @@ const WorkflowVariableBlockReplacementBlock = ({
onInsert()
const nodePathString = textNode.getTextContent().slice(3, -3)
return $applyNodeReplacement($createWorkflowVariableBlockNode(nodePathString.split('.'), workflowNodesMap, getVarType, variables?.find(o => o.nodeId === 'env')?.vars, variables?.find(o => o.nodeId === 'conversation')?.vars))
return $applyNodeReplacement($createWorkflowVariableBlockNode(nodePathString.split('.'), workflowNodesMap, getVarType, variables?.find(o => o.nodeId === 'env')?.vars || [], variables?.find(o => o.nodeId === 'conversation')?.vars || []))
}, [onInsert, workflowNodesMap, getVarType, variables])
const getMatch = useCallback((text: string) => {

Loading…
Cancel
Save