import { memo, useMemo, } from 'react' import { useTranslation } from 'react-i18next' import type { ComparisonOperator } from '../types' import { comparisonOperatorNotRequireValue, isComparisonOperatorNeedTranslate, } from '../utils' import { Variable02 } from '@/app/components/base/icons/src/vender/solid/development' import { BubbleX, Env } from '@/app/components/base/icons/src/vender/line/others' import cn from '@/utils/classnames' import { isConversationVar, isENV, isSystemVar } from '@/app/components/workflow/nodes/_base/components/variable/utils' type ConditionValueProps = { variableSelector: string[] operator: ComparisonOperator value: string } const ConditionValue = ({ variableSelector, operator, value, }: ConditionValueProps) => { const { t } = useTranslation() const variableName = isSystemVar(variableSelector) ? variableSelector.slice(0).join('.') : variableSelector.slice(1).join('.') const operatorName = isComparisonOperatorNeedTranslate(operator) ? t(`workflow.nodes.ifElse.comparisonOperator.${operator}`) : operator const notHasValue = comparisonOperatorNotRequireValue(operator) const isEnvVar = isENV(variableSelector) const isChatVar = isConversationVar(variableSelector) const formatValue = useMemo(() => { if (notHasValue) return '' return value.replace(/{{#([^#]*)#}}/g, (a, b) => { const arr: string[] = b.split('.') if (isSystemVar(arr)) return `{{${b}}}` return `{{${arr.slice(1).join('.')}}}` }) }, [notHasValue, value]) return (