pull/21823/head
zxhlyh 11 months ago
parent d60d67bf23
commit 453c65df6a

@ -7,6 +7,7 @@ import { WorkflowWithInnerContext } from '@/app/components/workflow'
import type { WorkflowProps } from '@/app/components/workflow' import type { WorkflowProps } from '@/app/components/workflow'
import WorkflowChildren from './workflow-children' import WorkflowChildren from './workflow-children'
import { import {
useConfigsMap,
useInspectVarsCrud, useInspectVarsCrud,
useNodesSyncDraft, useNodesSyncDraft,
useSetWorkflowVarsWithValue, useSetWorkflowVarsWithValue,
@ -65,8 +66,6 @@ const WorkflowMain = ({
} = useWorkflowStartRun() } = useWorkflowStartRun()
const { fetchInspectVars } = useSetWorkflowVarsWithValue() const { fetchInspectVars } = useSetWorkflowVarsWithValue()
const { const {
conversationVars,
systemVars,
hasNodeInspectVars, hasNodeInspectVars,
hasSetInspectVar, hasSetInspectVar,
fetchInspectVarValue, fetchInspectVarValue,
@ -82,6 +81,7 @@ const WorkflowMain = ({
resetConversationVar, resetConversationVar,
invalidateConversationVarValues, invalidateConversationVarValues,
} = useInspectVarsCrud() } = useInspectVarsCrud()
const configsMap = useConfigsMap()
const hooksStore = useMemo(() => { const hooksStore = useMemo(() => {
return { return {
@ -97,8 +97,6 @@ const WorkflowMain = ({
handleWorkflowStartRunInChatflow, handleWorkflowStartRunInChatflow,
handleWorkflowStartRunInWorkflow, handleWorkflowStartRunInWorkflow,
fetchInspectVars, fetchInspectVars,
conversationVars,
systemVars,
hasNodeInspectVars, hasNodeInspectVars,
hasSetInspectVar, hasSetInspectVar,
fetchInspectVarValue, fetchInspectVarValue,
@ -113,6 +111,7 @@ const WorkflowMain = ({
invalidateSysVarValues, invalidateSysVarValues,
resetConversationVar, resetConversationVar,
invalidateConversationVarValues, invalidateConversationVarValues,
configsMap,
} }
}, [ }, [
syncWorkflowDraftWhenPageClose, syncWorkflowDraftWhenPageClose,
@ -127,8 +126,6 @@ const WorkflowMain = ({
handleWorkflowStartRunInChatflow, handleWorkflowStartRunInChatflow,
handleWorkflowStartRunInWorkflow, handleWorkflowStartRunInWorkflow,
fetchInspectVars, fetchInspectVars,
conversationVars,
systemVars,
hasNodeInspectVars, hasNodeInspectVars,
hasSetInspectVar, hasSetInspectVar,
fetchInspectVarValue, fetchInspectVarValue,
@ -143,6 +140,7 @@ const WorkflowMain = ({
invalidateSysVarValues, invalidateSysVarValues,
resetConversationVar, resetConversationVar,
invalidateConversationVarValues, invalidateConversationVarValues,
configsMap,
]) ])
return ( return (

@ -7,3 +7,4 @@ export * from './use-is-chat-mode'
export * from './use-workflow-refresh-draft' export * from './use-workflow-refresh-draft'
export * from './use-fetch-workflow-inspect-vars' export * from './use-fetch-workflow-inspect-vars'
export * from './use-inspect-vars-crud' export * from './use-inspect-vars-crud'
export * from './use-configs-map'

@ -0,0 +1,12 @@
import { useMemo } from 'react'
import { useStore } from '@/app/components/workflow/store'
export const useConfigsMap = () => {
const appId = useStore(s => s.appId)
return useMemo(() => {
return {
conversationVarsUrl: `apps/${appId}/workflows/draft/conversation-variables`,
systemVarsUrl: `apps/${appId}/workflows/draft/system-variables`,
}
}, [appId])
}

@ -4,7 +4,6 @@ import type { ValueSelector } from '@/app/components/workflow/types'
import type { VarInInspect } from '@/types/workflow' import type { VarInInspect } from '@/types/workflow'
import { VarInInspectType } from '@/types/workflow' import { VarInInspectType } from '@/types/workflow'
import { import {
useConversationVarValues,
useDeleteAllInspectorVars, useDeleteAllInspectorVars,
useDeleteInspectVar, useDeleteInspectVar,
useDeleteNodeInspectorVars, useDeleteNodeInspectorVars,
@ -13,7 +12,6 @@ import {
useInvalidateSysVarValues, useInvalidateSysVarValues,
useResetConversationVar, useResetConversationVar,
useResetToLastRunValue, useResetToLastRunValue,
useSysVarValues,
} from '@/service/use-workflow' } from '@/service/use-workflow'
import { useCallback } from 'react' import { useCallback } from 'react'
import { isConversationVar, isENV, isSystemVar } from '@/app/components/workflow/nodes/_base/components/variable/utils' import { isConversationVar, isENV, isSystemVar } from '@/app/components/workflow/nodes/_base/components/variable/utils'
@ -21,6 +19,7 @@ import produce from 'immer'
import type { Node } from '@/app/components/workflow/types' import type { Node } from '@/app/components/workflow/types'
import { useNodesInteractionsWithoutSync } from '@/app/components/workflow/hooks/use-nodes-interactions-without-sync' import { useNodesInteractionsWithoutSync } from '@/app/components/workflow/hooks/use-nodes-interactions-without-sync'
import { useEdgesInteractionsWithoutSync } from '@/app/components/workflow/hooks/use-edges-interactions-without-sync' import { useEdgesInteractionsWithoutSync } from '@/app/components/workflow/hooks/use-edges-interactions-without-sync'
import { useConfigsMap } from './use-configs-map'
export const useInspectVarsCrud = () => { export const useInspectVarsCrud = () => {
const workflowStore = useWorkflowStore() const workflowStore = useWorkflowStore()
@ -36,13 +35,11 @@ export const useInspectVarsCrud = () => {
setNodesWithInspectVars, setNodesWithInspectVars,
resetToLastRunVar: resetToLastRunVarInStore, resetToLastRunVar: resetToLastRunVarInStore,
} = workflowStore.getState() } = workflowStore.getState()
const { conversationVarsUrl, systemVarsUrl } = useConfigsMap()
const { data: conversationVars } = useConversationVarValues(appId) const invalidateConversationVarValues = useInvalidateConversationVarValues(conversationVarsUrl)
const invalidateConversationVarValues = useInvalidateConversationVarValues(appId)
const { mutateAsync: doResetConversationVar } = useResetConversationVar(appId) const { mutateAsync: doResetConversationVar } = useResetConversationVar(appId)
const { mutateAsync: doResetToLastRunValue } = useResetToLastRunValue(appId) const { mutateAsync: doResetToLastRunValue } = useResetToLastRunValue(appId)
const { data: systemVars } = useSysVarValues(appId) const invalidateSysVarValues = useInvalidateSysVarValues(systemVarsUrl)
const invalidateSysVarValues = useInvalidateSysVarValues(appId)
const { mutateAsync: doDeleteAllInspectorVars } = useDeleteAllInspectorVars(appId) const { mutateAsync: doDeleteAllInspectorVars } = useDeleteAllInspectorVars(appId)
const { mutate: doDeleteNodeInspectorVars } = useDeleteNodeInspectorVars(appId) const { mutate: doDeleteNodeInspectorVars } = useDeleteNodeInspectorVars(appId)
@ -212,9 +209,6 @@ export const useInspectVarsCrud = () => {
}, [doResetToLastRunValue, invalidateSysVarValues, resetToLastRunVarInStore]) }, [doResetToLastRunValue, invalidateSysVarValues, resetToLastRunVarInStore])
return { return {
conversationVars: conversationVars || [],
systemVars: systemVars || [],
nodesWithInspectVars,
hasNodeInspectVars, hasNodeInspectVars,
hasSetInspectVar, hasSetInspectVar,
fetchInspectVarValue, fetchInspectVarValue,

@ -34,8 +34,6 @@ type CommonHooksFnMap = {
handleWorkflowStartRunInWorkflow: () => void handleWorkflowStartRunInWorkflow: () => void
handleWorkflowStartRunInChatflow: () => void handleWorkflowStartRunInChatflow: () => void
fetchInspectVars: () => Promise<void> fetchInspectVars: () => Promise<void>
conversationVars: VarInInspect[]
systemVars: VarInInspect[]
hasNodeInspectVars: (nodeId: string) => boolean hasNodeInspectVars: (nodeId: string) => boolean
hasSetInspectVar: (nodeId: string, name: string, sysVars: VarInInspect[], conversationVars: VarInInspect[]) => boolean hasSetInspectVar: (nodeId: string, name: string, sysVars: VarInInspect[], conversationVars: VarInInspect[]) => boolean
fetchInspectVarValue: (selector: ValueSelector) => Promise<void> fetchInspectVarValue: (selector: ValueSelector) => Promise<void>
@ -50,6 +48,10 @@ type CommonHooksFnMap = {
invalidateSysVarValues: () => void invalidateSysVarValues: () => void
resetConversationVar: (varId: string) => Promise<void> resetConversationVar: (varId: string) => Promise<void>
invalidateConversationVarValues: () => void invalidateConversationVarValues: () => void
configsMap?: {
conversationVarsUrl: string
systemVarsUrl: string
}
} }
export type Shape = { export type Shape = {
@ -69,8 +71,6 @@ export const createHooksStore = ({
handleWorkflowStartRunInWorkflow = noop, handleWorkflowStartRunInWorkflow = noop,
handleWorkflowStartRunInChatflow = noop, handleWorkflowStartRunInChatflow = noop,
fetchInspectVars = async () => noop(), fetchInspectVars = async () => noop(),
conversationVars = [],
systemVars = [],
hasNodeInspectVars = () => false, hasNodeInspectVars = () => false,
hasSetInspectVar = () => false, hasSetInspectVar = () => false,
fetchInspectVarValue = async () => noop(), fetchInspectVarValue = async () => noop(),
@ -100,8 +100,6 @@ export const createHooksStore = ({
handleWorkflowStartRunInWorkflow, handleWorkflowStartRunInWorkflow,
handleWorkflowStartRunInChatflow, handleWorkflowStartRunInChatflow,
fetchInspectVars, fetchInspectVars,
conversationVars,
systemVars,
hasNodeInspectVars, hasNodeInspectVars,
hasSetInspectVar, hasSetInspectVar,
fetchInspectVarValue, fetchInspectVarValue,

@ -1,10 +1,15 @@
import { useStore } from '../store' import { useStore } from '../store'
import { useHooksStore } from '@/app/components/workflow/hooks-store' import { useHooksStore } from '@/app/components/workflow/hooks-store'
import {
useConversationVarValues,
useSysVarValues,
} from '@/service/use-workflow'
const useInspectVarsCrud = () => { const useInspectVarsCrud = () => {
const nodesWithInspectVars = useStore(s => s.nodesWithInspectVars) const nodesWithInspectVars = useStore(s => s.nodesWithInspectVars)
const conversationVars = useHooksStore(s => s.conversationVars) const configsMap = useHooksStore(s => s.configsMap)
const systemVars = useHooksStore(s => s.systemVars) const { data: conversationVars } = useConversationVarValues(configsMap?.conversationVarsUrl)
const { data: systemVars } = useSysVarValues(configsMap?.systemVarsUrl)
const hasNodeInspectVars = useHooksStore(s => s.hasNodeInspectVars) const hasNodeInspectVars = useHooksStore(s => s.hasNodeInspectVars)
const hasSetInspectVar = useHooksStore(s => s.hasSetInspectVar) const hasSetInspectVar = useHooksStore(s => s.hasSetInspectVar)
const fetchInspectVarValue = useHooksStore(s => s.fetchInspectVarValue) const fetchInspectVarValue = useHooksStore(s => s.fetchInspectVarValue)
@ -21,8 +26,8 @@ const useInspectVarsCrud = () => {
const invalidateConversationVarValues = useHooksStore(s => s.invalidateConversationVarValues) const invalidateConversationVarValues = useHooksStore(s => s.invalidateConversationVarValues)
return { return {
conversationVars, conversationVars: conversationVars || [],
systemVars, systemVars: systemVars || [],
nodesWithInspectVars, nodesWithInspectVars,
hasNodeInspectVars, hasNodeInspectVars,
hasSetInspectVar, hasSetInspectVar,

@ -113,18 +113,19 @@ export const useInvalidAllLastRun = (appId: string) => {
const useConversationVarValuesKey = [NAME_SPACE, 'conversation-variable'] const useConversationVarValuesKey = [NAME_SPACE, 'conversation-variable']
export const useConversationVarValues = (appId: string) => { export const useConversationVarValues = (url?: string) => {
return useQuery({ return useQuery({
queryKey: [...useConversationVarValuesKey, appId], enabled: !!url,
queryKey: [...useConversationVarValuesKey, url],
queryFn: async () => { queryFn: async () => {
const { items } = (await get(`apps/${appId}/workflows/draft/conversation-variables`)) as { items: VarInInspect[] } const { items } = (await get(url || '')) as { items: VarInInspect[] }
return items return items
}, },
}) })
} }
export const useInvalidateConversationVarValues = (appId: string) => { export const useInvalidateConversationVarValues = (url: string) => {
return useInvalid([...useConversationVarValuesKey, appId]) return useInvalid([...useConversationVarValuesKey, url])
} }
export const useResetConversationVar = (appId: string) => { export const useResetConversationVar = (appId: string) => {
@ -146,18 +147,19 @@ export const useResetToLastRunValue = (appId: string) => {
} }
export const useSysVarValuesKey = [NAME_SPACE, 'sys-variable'] export const useSysVarValuesKey = [NAME_SPACE, 'sys-variable']
export const useSysVarValues = (appId: string) => { export const useSysVarValues = (url?: string) => {
return useQuery({ return useQuery({
queryKey: [...useSysVarValuesKey, appId], enabled: !!url,
queryKey: [...useSysVarValuesKey, url],
queryFn: async () => { queryFn: async () => {
const { items } = (await get(`apps/${appId}/workflows/draft/system-variables`)) as { items: VarInInspect[] } const { items } = (await get(url || '')) as { items: VarInInspect[] }
return items return items
}, },
}) })
} }
export const useInvalidateSysVarValues = (appId: string) => { export const useInvalidateSysVarValues = (url: string) => {
return useInvalid([...useSysVarValuesKey, appId]) return useInvalid([...useSysVarValuesKey, url])
} }
export const useDeleteAllInspectorVars = (appId: string) => { export const useDeleteAllInspectorVars = (appId: string) => {

Loading…
Cancel
Save