wwf
3 天以前 a430284aa21e3ae1f0d5654e55b2ad2852519cc2
app/components/workflow/nodes/assigner/components/var-list/index.tsx
@@ -15,7 +15,6 @@
import Input from '@/app/components/base/input'
import Textarea from '@/app/components/base/textarea'
import CodeEditor from '@/app/components/workflow/nodes/_base/components/editor/code-editor'
import { noop } from 'lodash-es'
type Props = {
  readonly: boolean
@@ -37,7 +36,7 @@
  nodeId,
  list,
  onChange,
  onOpen = noop,
  onOpen = () => { },
  filterVar,
  filterToAssignedVar,
  getAssignedVarType,
@@ -96,14 +95,18 @@
  }, [onOpen])
  const handleFilterToAssignedVar = useCallback((index: number) => {
    return (payload: Var) => {
      const { variable_selector, operation } = list[index]
      if (!variable_selector || !operation || !filterToAssignedVar) return true
    return (payload: Var, valueSelector: ValueSelector) => {
      const item = list[index]
      const assignedVarType = item.variable_selector ? getAssignedVarType?.(item.variable_selector) : undefined
      const assignedVarType = getAssignedVarType?.(variable_selector)
      const isSameVariable = Array.isArray(variable_selector) && variable_selector.join('.') === `${payload.nodeId}.${payload.variable}`
      if (!filterToAssignedVar || !item.variable_selector || !assignedVarType || !item.operation)
        return true
      return !isSameVariable && (!assignedVarType || filterToAssignedVar(payload, assignedVarType, operation))
      return filterToAssignedVar(
        payload,
        assignedVarType,
        item.operation,
      )
    }
  }, [list, filterToAssignedVar, getAssignedVarType])
@@ -125,7 +128,7 @@
        return (
          <div className='flex items-start gap-1 self-stretch' key={index}>
            <div className='flex grow flex-col items-start gap-1'>
            <div className='flex flex-col items-start gap-1 flex-grow'>
              <div className='flex items-center gap-1 self-stretch'>
                <VarReferencePicker
                  readonly={readonly}
@@ -152,7 +155,6 @@
                />
              </div>
              {item.operation !== WriteMode.clear && item.operation !== WriteMode.set
                && item.operation !== WriteMode.removeFirst && item.operation !== WriteMode.removeLast
                && !writeModeTypesNum?.includes(item.operation)
                && (
                  <VarReferencePicker
@@ -210,10 +212,10 @@
            </div>
            <ActionButton
              size='l'
              className='group shrink-0 hover:!bg-state-destructive-hover'
              className='flex-shrink-0 group hover:!bg-state-destructive-hover'
              onClick={handleVarRemove(index)}
            >
              <RiDeleteBinLine className='h-4 w-4 text-text-tertiary group-hover:text-text-destructive' />
              <RiDeleteBinLine className='text-text-tertiary w-4 h-4 group-hover:text-text-destructive' />
            </ActionButton>
          </div>
        )