fix: append node append deplicate data

pull/21369/head
Joel 1 year ago
parent ee1d74d6b3
commit dd4dda4d8c

@ -47,7 +47,6 @@ const useInspectVarsCrud = () => {
const nodeId = selector[0] const nodeId = selector[0]
const isSystemVar = nodeId === 'sys' const isSystemVar = nodeId === 'sys'
const isConversationVar = nodeId === 'conversation' const isConversationVar = nodeId === 'conversation'
console.log(nodeId, isSystemVar, isConversationVar)
if (isSystemVar) { if (isSystemVar) {
invalidateSysVarValues() invalidateSysVarValues()
return return

@ -44,7 +44,7 @@ import AddVariablePopupWithPosition from './components/add-variable-popup-with-p
import cn from '@/utils/classnames' import cn from '@/utils/classnames'
import BlockIcon from '@/app/components/workflow/block-icon' import BlockIcon from '@/app/components/workflow/block-icon'
import Tooltip from '@/app/components/base/tooltip' import Tooltip from '@/app/components/base/tooltip'
import { useWorkflowStore } from '../../store' import { useStore } from '../../store'
type BaseNodeProps = { type BaseNodeProps = {
children: ReactElement children: ReactElement
@ -90,10 +90,7 @@ const BaseNode: FC<BaseNodeProps> = ({
} }
}, [data.isInLoop, data.selected, id, handleNodeLoopChildSizeChange]) }, [data.isInLoop, data.selected, id, handleNodeLoopChildSizeChange])
const workflowStore = useWorkflowStore() const hasNodeInspectVars = useStore(s => s.hasNodeInspectVars)
const {
hasNodeInspectVars,
} = workflowStore.getState()
const hasVarValue = hasNodeInspectVars(id) const hasVarValue = hasNodeInspectVars(id)
const showSelectedBorder = data.selected || data._isBundled || data._isEntering const showSelectedBorder = data.selected || data._isBundled || data._isEntering
const { const {

@ -71,11 +71,14 @@ export const createInspectVarsSlice: StateCreator<InspectVarsSliceShape> = (set,
} }
}) })
}, },
// after last run would call this
appendNodeInspectVars: (nodeId, payload, allNodes) => { appendNodeInspectVars: (nodeId, payload, allNodes) => {
set((state) => { set((state) => {
const nodes = state.nodesWithInspectVars const nodes = state.nodesWithInspectVars
const nodeInfo = allNodes.find(node => node.id === nodeId) const nodeInfo = allNodes.find(node => node.id === nodeId)
if (nodeInfo) { if (nodeInfo) {
const index = nodes.findIndex(node => node.nodeId === nodeId)
if (index === -1) {
nodes.push({ nodes.push({
nodeId, nodeId,
nodeType: nodeInfo.data.type, nodeType: nodeInfo.data.type,
@ -83,6 +86,10 @@ export const createInspectVarsSlice: StateCreator<InspectVarsSliceShape> = (set,
vars: payload, vars: payload,
}) })
} }
else {
nodes[index].vars = payload
}
}
return { return {
nodesWithInspectVars: nodes, nodesWithInspectVars: nodes,
} }

@ -35,7 +35,7 @@ const VariableInspectTrigger: FC = () => {
const currentVars = useMemo(() => { const currentVars = useMemo(() => {
const allVars = [...environmentVariables, ...conversationVars, ...systemVars, ...nodesWithInspectVars] const allVars = [...environmentVariables, ...conversationVars, ...systemVars, ...nodesWithInspectVars]
return allVars return allVars
}, [conversationVars, systemVars, nodesWithInspectVars]) }, [environmentVariables, conversationVars, systemVars, nodesWithInspectVars])
// ##TODD stop handle // ##TODD stop handle

Loading…
Cancel
Save