diff --git a/web/app/components/workflow/nodes/if-else/default.ts b/web/app/components/workflow/nodes/if-else/default.ts index 7a74ddbdf6..c0e44cb499 100644 --- a/web/app/components/workflow/nodes/if-else/default.ts +++ b/web/app/components/workflow/nodes/if-else/default.ts @@ -2,6 +2,8 @@ import { BlockEnum, type NodeDefault } from '../../types' import { type IfElseNodeType, LogicalOperator } from './types' import { ALL_CHAT_AVAILABLE_BLOCKS, ALL_COMPLETION_AVAILABLE_BLOCKS } from '@/app/components/workflow/constants' +const i18nPrefix = 'workflow.errorMsg' + const nodeDefault: NodeDefault = { defaultValue: { _targetBranches: [ @@ -27,15 +29,20 @@ const nodeDefault: NodeDefault = { const nodes = isChatMode ? ALL_CHAT_AVAILABLE_BLOCKS : ALL_COMPLETION_AVAILABLE_BLOCKS return nodes.filter(type => type !== BlockEnum.VariableAssigner) }, - checkValid(payload: IfElseNodeType) { - let isValid = true + checkValid(payload: IfElseNodeType, t: any) { let errorMessages = '' - if (payload.type) { - isValid = true - errorMessages = '' - } + const { conditions } = payload + if (!conditions || conditions.length === 0) + errorMessages = t(`${i18nPrefix}.fieldRequired`, { field: 'IF' }) + + conditions.forEach((condition) => { + if (!errorMessages && (!condition.variable_selector || condition.variable_selector.length === 0)) + errorMessages = t(`${i18nPrefix}.fieldRequired`, { field: t(`${i18nPrefix}.fields.variable`) }) + if (!errorMessages && !condition.value) + errorMessages = t(`${i18nPrefix}.fieldRequired`, { field: t(`${i18nPrefix}.fields.variableValue`) }) + }) return { - isValid, + isValid: !errorMessages, errorMessage: errorMessages, } },