From 42fb0bba741f9e8f19fdab439db73006f615d751 Mon Sep 17 00:00:00 2001 From: Joel Date: Wed, 7 May 2025 16:38:37 +0800 Subject: [PATCH] fix: detect if has set sys vars --- .../workflow/hooks/use-inspect-vars-crud.ts | 4 +--- .../workflow-panel/last-run/use-last-run.ts | 4 ++-- .../store/workflow/debug/inspect-vars-slice.ts | 14 +++++--------- 3 files changed, 8 insertions(+), 14 deletions(-) diff --git a/web/app/components/workflow/hooks/use-inspect-vars-crud.ts b/web/app/components/workflow/hooks/use-inspect-vars-crud.ts index f2e08f9619..191125496f 100644 --- a/web/app/components/workflow/hooks/use-inspect-vars-crud.ts +++ b/web/app/components/workflow/hooks/use-inspect-vars-crud.ts @@ -95,7 +95,7 @@ const useInspectVarsCrud = () => { }) setInspectVarValue(nodeId, varId, value) } - }, [doEditInspectorVar, setInspectVarValue]) + }, [doEditInspectorVar, invalidateConversationVarValues, invalidateSysVarValues, setInspectVarValue]) const [currNodeId, setCurrNodeId] = useState(null) const [currEditVarId, setCurrEditVarId] = useState(null) @@ -129,8 +129,6 @@ const useInspectVarsCrud = () => { setCurrEditVarId(varId) } - // console.log(conversationVars, systemVars) - return { conversationVars: conversationVars || [], systemVars: systemVars || [], diff --git a/web/app/components/workflow/nodes/_base/components/workflow-panel/last-run/use-last-run.ts b/web/app/components/workflow/nodes/_base/components/workflow-panel/last-run/use-last-run.ts index f6139096f6..ef2199cdaa 100644 --- a/web/app/components/workflow/nodes/_base/components/workflow-panel/last-run/use-last-run.ts +++ b/web/app/components/workflow/nodes/_base/components/workflow-panel/last-run/use-last-run.ts @@ -102,7 +102,7 @@ type Params = OneStepRunParams const useLastRun = ({ ...oneStepRunParams }: Params) => { - const { conversationVars } = useInspectVarsCrud() + const { conversationVars, systemVars } = useInspectVarsCrud() const blockType = oneStepRunParams.data.type const { handleSyncWorkflowDraft } = useNodesSyncDraft() const { @@ -180,7 +180,7 @@ const useLastRun = ({ form.inputs.forEach(({ variable }) => { const selector = variable.slice(1, -1).split('.') const [nodeId, varName] = selector.slice(0, 2) - const inspectVarValue = hasSetInspectVar(nodeId, varName, conversationVars) // also detect system var , env and conversation var + const inspectVarValue = hasSetInspectVar(nodeId, varName, systemVars, conversationVars) // also detect system var , env and conversation var if (inspectVarValue) values[variable] = true }) diff --git a/web/app/components/workflow/store/workflow/debug/inspect-vars-slice.ts b/web/app/components/workflow/store/workflow/debug/inspect-vars-slice.ts index eb50f2242f..35ba111708 100644 --- a/web/app/components/workflow/store/workflow/debug/inspect-vars-slice.ts +++ b/web/app/components/workflow/store/workflow/debug/inspect-vars-slice.ts @@ -1,7 +1,7 @@ import type { StateCreator } from 'zustand' import produce from 'immer' import type { NodeWithVar, VarInInspect } from '@/types/workflow' -import { BlockEnum, type ValueSelector } from '../../../types' +import type { ValueSelector } from '../../../types' import type { Node } from '@/app/components/workflow/types' import { isConversationVar, isENV, isSystemVar } from '../../../nodes/_base/components/variable/utils' @@ -26,7 +26,7 @@ type InspectVarsActions = { renameInspectVarName: (nodeId: string, varId: string, selector: ValueSelector) => void deleteInspectVar: (nodeId: string, varId: string) => void getInspectVar: (nodeId: string, name: string) => any - hasSetInspectVar: (nodeId: string, name: string, conversationVars: VarInInspect[]) => boolean + hasSetInspectVar: (nodeId: string, name: string, sysVars: VarInInspect[], conversationVars: VarInInspect[]) => boolean isInspectVarEdited: (nodeId: string, name: string) => boolean } @@ -174,17 +174,13 @@ export const createInspectVarsSlice: StateCreator = (set, })?.value return variable }, - hasSetInspectVar: (nodeId, name, conversationVars: VarInInspect[]) => { + hasSetInspectVar: (nodeId, name, sysVars, conversationVars) => { const isEnv = isENV([nodeId]) if (isEnv) // always have value return true const isSys = isSystemVar([nodeId]) - if (isSys) { - const isStartNodeRun = get().nodesWithInspectVars.some((node) => { - return node.nodeType === BlockEnum.Start - }) - return isStartNodeRun - } + if (isSys) + return sysVars.some(varItem => varItem.selector?.[1] === name) const isChatVar = isConversationVar([nodeId]) if (isChatVar) return conversationVars.some(varItem => varItem.selector?.[1] === name)