|
@@ -8,6 +8,7 @@ import {
|
|
|
} from '@remixicon/react'
|
|
|
import produce from 'immer'
|
|
|
import { useStoreApi } from 'reactflow'
|
|
|
+import useAvailableVarList from '../../hooks/use-available-var-list'
|
|
|
import VarReferencePopup from './var-reference-popup'
|
|
|
import { getNodeInfoById, isConversationVar, isENV, isSystemVar } from './utils'
|
|
|
import ConstantField from './constant-field'
|
|
@@ -26,7 +27,6 @@ import {
|
|
|
} from '@/app/components/base/portal-to-follow-elem'
|
|
|
import {
|
|
|
useIsChatMode,
|
|
|
- useWorkflow,
|
|
|
useWorkflowVariables,
|
|
|
} from '@/app/components/workflow/hooks'
|
|
|
import { VarType as VarKindType } from '@/app/components/workflow/nodes/tool/types'
|
|
@@ -67,7 +67,7 @@ const VarReferencePicker: FC<Props> = ({
|
|
|
onlyLeafNodeVar,
|
|
|
filterVar = () => true,
|
|
|
availableNodes: passedInAvailableNodes,
|
|
|
- availableVars,
|
|
|
+ availableVars: passedInAvailableVars,
|
|
|
isAddBtnTrigger,
|
|
|
schema,
|
|
|
valueTypePlaceHolder,
|
|
@@ -79,11 +79,12 @@ const VarReferencePicker: FC<Props> = ({
|
|
|
} = store.getState()
|
|
|
const isChatMode = useIsChatMode()
|
|
|
|
|
|
- const { getTreeLeafNodes, getBeforeNodesInSameBranch } = useWorkflow()
|
|
|
- const { getCurrentVariableType, getNodeAvailableVars } = useWorkflowVariables()
|
|
|
- const availableNodes = useMemo(() => {
|
|
|
- return passedInAvailableNodes || (onlyLeafNodeVar ? getTreeLeafNodes(nodeId) : getBeforeNodesInSameBranch(nodeId))
|
|
|
- }, [getBeforeNodesInSameBranch, getTreeLeafNodes, nodeId, onlyLeafNodeVar, passedInAvailableNodes])
|
|
|
+ const { getCurrentVariableType } = useWorkflowVariables()
|
|
|
+ const { availableNodes, availableVars } = useAvailableVarList(nodeId, {
|
|
|
+ onlyLeafNodeVar,
|
|
|
+ passedInAvailableNodes,
|
|
|
+ filterVar,
|
|
|
+ })
|
|
|
const startNode = availableNodes.find((node: any) => {
|
|
|
return node.data.type === BlockEnum.Start
|
|
|
})
|
|
@@ -102,19 +103,8 @@ const VarReferencePicker: FC<Props> = ({
|
|
|
|
|
|
const [varKindType, setVarKindType] = useState<VarKindType>(defaultVarKindType)
|
|
|
const isConstant = isSupportConstantValue && varKindType === VarKindType.constant
|
|
|
- const outputVars = useMemo(() => {
|
|
|
- if (availableVars)
|
|
|
- return availableVars
|
|
|
-
|
|
|
- const vars = getNodeAvailableVars({
|
|
|
- parentNode: iterationNode,
|
|
|
- beforeNodes: availableNodes,
|
|
|
- isChatMode,
|
|
|
- filterVar,
|
|
|
- })
|
|
|
|
|
|
- return vars
|
|
|
- }, [iterationNode, availableNodes, isChatMode, filterVar, availableVars, getNodeAvailableVars])
|
|
|
+ const outputVars = useMemo(() => (passedInAvailableVars || availableVars), [passedInAvailableVars, availableVars])
|
|
|
|
|
|
const [open, setOpen] = useState(false)
|
|
|
useEffect(() => {
|