Spaces:
Build error
Build error
import { useCallback } from 'react' | |
import { useTranslation } from 'react-i18next' | |
import { useStore } from '../store' | |
import { getVarType, toNodeAvailableVars } from '@/app/components/workflow/nodes/_base/components/variable/utils' | |
import type { | |
Node, | |
NodeOutPutVar, | |
ValueSelector, | |
Var, | |
} from '@/app/components/workflow/types' | |
export const useWorkflowVariables = () => { | |
const { t } = useTranslation() | |
const environmentVariables = useStore(s => s.environmentVariables) | |
const conversationVariables = useStore(s => s.conversationVariables) | |
const getNodeAvailableVars = useCallback(({ | |
parentNode, | |
beforeNodes, | |
isChatMode, | |
filterVar, | |
hideEnv, | |
hideChatVar, | |
}: { | |
parentNode?: Node | null | |
beforeNodes: Node[] | |
isChatMode: boolean | |
filterVar: (payload: Var, selector: ValueSelector) => boolean | |
hideEnv?: boolean | |
hideChatVar?: boolean | |
}): NodeOutPutVar[] => { | |
return toNodeAvailableVars({ | |
parentNode, | |
t, | |
beforeNodes, | |
isChatMode, | |
environmentVariables: hideEnv ? [] : environmentVariables, | |
conversationVariables: (isChatMode && !hideChatVar) ? conversationVariables : [], | |
filterVar, | |
}) | |
}, [conversationVariables, environmentVariables, t]) | |
const getCurrentVariableType = useCallback(({ | |
parentNode, | |
valueSelector, | |
isIterationItem, | |
availableNodes, | |
isChatMode, | |
isConstant, | |
}: { | |
valueSelector: ValueSelector | |
parentNode?: Node | null | |
isIterationItem?: boolean | |
availableNodes: any[] | |
isChatMode: boolean | |
isConstant?: boolean | |
}) => { | |
return getVarType({ | |
parentNode, | |
valueSelector, | |
isIterationItem, | |
availableNodes, | |
isChatMode, | |
isConstant, | |
environmentVariables, | |
conversationVariables, | |
}) | |
}, [conversationVariables, environmentVariables]) | |
return { | |
getNodeAvailableVars, | |
getCurrentVariableType, | |
} | |
} | |