diff --git a/web/app/components/workflow/nodes/if-else/components/condition-files-list-value.tsx b/web/app/components/workflow/nodes/if-else/components/condition-files-list-value.tsx index c5f0a2070c..35e75dfea1 100644 --- a/web/app/components/workflow/nodes/if-else/components/condition-files-list-value.tsx +++ b/web/app/components/workflow/nodes/if-else/components/condition-files-list-value.tsx @@ -1,13 +1,15 @@ import { memo, + useCallback, } from 'react' import { useTranslation } from 'react-i18next' -import type { Condition } from '../types' +import { ComparisonOperator, type Condition } from '../types' import { comparisonOperatorNotRequireValue, isComparisonOperatorNeedTranslate, isEmptyRelatedOperator, } from '../utils' +import { FILE_TYPE_OPTIONS, TRANSFER_METHOD } from '../default' import type { ValueSelector } from '../../../types' import { Variable02 } from '@/app/components/base/icons/src/vender/solid/development' import { BubbleX, Env } from '@/app/components/base/icons/src/vender/line/others' @@ -35,35 +37,41 @@ const ConditionValue = ({ const notHasValue = comparisonOperatorNotRequireValue(operator) const isEnvVar = isENV(variableSelector) const isChatVar = isConversationVar(variableSelector) - // const formatValue = useMemo(() => { - // if (notHasValue) - // return '' + const formatValue = useCallback((c: Condition) => { + const notHasValue = comparisonOperatorNotRequireValue(c.comparison_operator) + if (notHasValue) + return '' - // return value.replace(/{{#([^#]*)#}}/g, (a, b) => { - // const arr: string[] = b.split('.') - // if (isSystemVar(arr)) - // return `{{${b}}}` + const value = c.value as string + return value.replace(/{{#([^#]*)#}}/g, (a, b) => { + const arr: string[] = b.split('.') + if (isSystemVar(arr)) + return `{{${b}}}` - // return `{{${arr.slice(1).join('.')}}}` - // }) - // }, [notHasValue, value]) + return `{{${arr.slice(1).join('.')}}}` + }) + }, []) - // const isSelect = operator === ComparisonOperator.in || operator === ComparisonOperator.notIn - // const selectName = useMemo(() => { - // if (isSelect) { - // const name = [...FILE_TYPE_OPTIONS, ...TRANSFER_METHOD].filter(item => item.value === value)[0] - // return name - // ? t(`workflow.nodes.ifElse.optionName.${name.i18nKey}`).replace(/{{#([^#]*)#}}/g, (a, b) => { - // const arr: string[] = b.split('.') - // if (isSystemVar(arr)) - // return `{{${b}}}` + const isSelect = useCallback((c: Condition) => { + return c.comparison_operator === ComparisonOperator.in || c.comparison_operator === ComparisonOperator.notIn + }, []) - // return `{{${arr.slice(1).join('.')}}}` - // }) - // : '' - // } - // return '' - // }, [isSelect, t, value]) + const selectName = useCallback((c: Condition) => { + const isSelect = c.comparison_operator === ComparisonOperator.in || c.comparison_operator === ComparisonOperator.notIn + if (isSelect) { + const name = [...FILE_TYPE_OPTIONS, ...TRANSFER_METHOD].filter(item => item.value === c.value)[0] + return name + ? t(`workflow.nodes.ifElse.optionName.${name.i18nKey}`).replace(/{{#([^#]*)#}}/g, (a, b) => { + const arr: string[] = b.split('.') + if (isSystemVar(arr)) + return `{{${b}}}` + + return `{{${arr.slice(1).join('.')}}}` + }) + : '' + } + return '' + }, []) return (