浏览代码

chore: check input variable key of code/template node is valid (#21057)

tags/1.5.0
非法操作 4 个月前
父节点
当前提交
7a2a8a2ffd
没有帐户链接到提交者的电子邮件
共有 1 个文件被更改,包括 22 次插入2 次删除
  1. 22
    2
      web/app/components/workflow/nodes/_base/components/variable/var-list.tsx

+ 22
- 2
web/app/components/workflow/nodes/_base/components/variable/var-list.tsx 查看文件

@@ -8,6 +8,8 @@ import VarReferencePicker from './var-reference-picker'
import Input from '@/app/components/base/input'
import type { ValueSelector, Var, Variable } from '@/app/components/workflow/types'
import { VarType as VarKindType } from '@/app/components/workflow/nodes/tool/types'
import { checkKeys } from '@/utils/var'
import Toast from '@/app/components/base/toast'

type Props = {
nodeId: string
@@ -36,9 +38,27 @@ const VarList: FC<Props> = ({

const handleVarNameChange = useCallback((index: number) => {
return (e: React.ChangeEvent<HTMLInputElement>) => {
onVarNameChange?.(list[index].variable, e.target.value)
const newKey = e.target.value
const { isValid, errorKey, errorMessageKey } = checkKeys([newKey], true)
if (!isValid) {
Toast.notify({
type: 'error',
message: t(`appDebug.varKeyError.${errorMessageKey}`, { key: errorKey }),
})
return
}

if (list.map(item => item.variable?.trim()).includes(newKey.trim())) {
Toast.notify({
type: 'error',
message: t('appDebug.varKeyError.keyAlreadyExists', { key: newKey }),
})
return
}

onVarNameChange?.(list[index].variable, newKey)
const newList = produce(list, (draft) => {
draft[index].variable = e.target.value
draft[index].variable = newKey
})
onChange(newList)
}

正在加载...
取消
保存