Spaces:
Paused
Paused
| 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, | |
| } | |
| } | |