mirror of
https://git.mirrors.martin98.com/https://github.com/langgenius/dify.git
synced 2025-08-05 15:50:38 +08:00
fix: remove start var problem
This commit is contained in:
parent
8413090c49
commit
edc6ab8722
@ -22,6 +22,8 @@ const useConfig = (id: string, payload: StartNodeType) => {
|
|||||||
const {
|
const {
|
||||||
deleteNodeInspectorVars,
|
deleteNodeInspectorVars,
|
||||||
renameInspectVarName,
|
renameInspectVarName,
|
||||||
|
nodesWithInspectVars,
|
||||||
|
deleteInspectVar,
|
||||||
} = useInspectVarsCrud()
|
} = useInspectVarsCrud()
|
||||||
|
|
||||||
const [isShowAddVarModal, {
|
const [isShowAddVarModal, {
|
||||||
@ -37,6 +39,12 @@ const useConfig = (id: string, payload: StartNodeType) => {
|
|||||||
const [removedIndex, setRemoveIndex] = useState(0)
|
const [removedIndex, setRemoveIndex] = useState(0)
|
||||||
const handleVarListChange = useCallback((newList: InputVar[], moreInfo?: { index: number; payload: MoreInfo }) => {
|
const handleVarListChange = useCallback((newList: InputVar[], moreInfo?: { index: number; payload: MoreInfo }) => {
|
||||||
if (moreInfo?.payload?.type === ChangeType.remove) {
|
if (moreInfo?.payload?.type === ChangeType.remove) {
|
||||||
|
const varId = nodesWithInspectVars.find(node => node.nodeId === id)?.vars.find((varItem) => {
|
||||||
|
return varItem.name === moreInfo?.payload?.payload?.beforeKey
|
||||||
|
})?.id
|
||||||
|
if(varId)
|
||||||
|
deleteInspectVar(id, varId)
|
||||||
|
|
||||||
if (isVarUsedInNodes([id, moreInfo?.payload?.payload?.beforeKey || ''])) {
|
if (isVarUsedInNodes([id, moreInfo?.payload?.payload?.beforeKey || ''])) {
|
||||||
showRemoveVarConfirm()
|
showRemoveVarConfirm()
|
||||||
setRemovedVar([id, moreInfo?.payload?.payload?.beforeKey || ''])
|
setRemovedVar([id, moreInfo?.payload?.payload?.beforeKey || ''])
|
||||||
@ -54,10 +62,10 @@ const useConfig = (id: string, payload: StartNodeType) => {
|
|||||||
handleOutVarRenameChange(id, [id, inputs.variables[moreInfo.index].variable], [id, changedVar.variable])
|
handleOutVarRenameChange(id, [id, inputs.variables[moreInfo.index].variable], [id, changedVar.variable])
|
||||||
renameInspectVarName(id, inputs.variables[moreInfo.index].variable, changedVar.variable)
|
renameInspectVarName(id, inputs.variables[moreInfo.index].variable, changedVar.variable)
|
||||||
}
|
}
|
||||||
else { // edit var type
|
else if(moreInfo?.payload?.type !== ChangeType.remove) { // edit var type
|
||||||
deleteNodeInspectorVars(id)
|
deleteNodeInspectorVars(id)
|
||||||
}
|
}
|
||||||
}, [deleteNodeInspectorVars, handleOutVarRenameChange, id, inputs, isVarUsedInNodes, renameInspectVarName, setInputs, showRemoveVarConfirm])
|
}, [deleteInspectVar, deleteNodeInspectorVars, handleOutVarRenameChange, id, inputs, isVarUsedInNodes, nodesWithInspectVars, renameInspectVarName, setInputs, showRemoveVarConfirm])
|
||||||
|
|
||||||
const removeVarInNode = useCallback(() => {
|
const removeVarInNode = useCallback(() => {
|
||||||
const newInputs = produce(inputs, (draft) => {
|
const newInputs = produce(inputs, (draft) => {
|
||||||
@ -73,8 +81,7 @@ const useConfig = (id: string, payload: StartNodeType) => {
|
|||||||
draft.variables.push(payload)
|
draft.variables.push(payload)
|
||||||
})
|
})
|
||||||
setInputs(newInputs)
|
setInputs(newInputs)
|
||||||
deleteNodeInspectorVars(id)
|
}, [inputs, setInputs])
|
||||||
}, [deleteNodeInspectorVars, id, inputs, setInputs])
|
|
||||||
return {
|
return {
|
||||||
readOnly,
|
readOnly,
|
||||||
isChatMode,
|
isChatMode,
|
||||||
|
@ -104,21 +104,20 @@ export const createInspectVarsSlice: StateCreator<InspectVarsSliceShape> = (set,
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
deleteInspectVar: (nodeId, varId) => {
|
deleteInspectVar: (nodeId, varId) => {
|
||||||
set(produce((state: InspectVarsSliceShape) => {
|
set((state: InspectVarsSliceShape) => {
|
||||||
const nodes = state.nodesWithInspectVars.map((node) => {
|
const nodes = produce(state.nodesWithInspectVars, (draft) => {
|
||||||
if (node.nodeId === nodeId) {
|
const targetNode = draft.find(node => node.nodeId === nodeId)
|
||||||
return produce(node, (draft) => {
|
if (!targetNode)
|
||||||
const needChangeVarIndex = draft.vars.findIndex((varItem) => {
|
return
|
||||||
return varItem.id === varId
|
const needChangeVarIndex = targetNode.vars.findIndex(varItem => varItem.id === varId)
|
||||||
})
|
if (needChangeVarIndex !== -1)
|
||||||
if (needChangeVarIndex !== -1)
|
targetNode.vars.splice(needChangeVarIndex, 1)
|
||||||
draft.vars.splice(needChangeVarIndex, 1)
|
},
|
||||||
})
|
)
|
||||||
}
|
return {
|
||||||
return node
|
nodesWithInspectVars: nodes,
|
||||||
})
|
}
|
||||||
state.nodesWithInspectVars = nodes
|
})
|
||||||
}))
|
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -148,7 +148,7 @@ const Group = ({
|
|||||||
key={varItem.id}
|
key={varItem.id}
|
||||||
className={cn(
|
className={cn(
|
||||||
'relative flex cursor-pointer items-center gap-1 rounded-md px-3 py-1 hover:bg-state-base-hover',
|
'relative flex cursor-pointer items-center gap-1 rounded-md px-3 py-1 hover:bg-state-base-hover',
|
||||||
varItem.id === currentVar?.var.id && 'bg-state-base-hover-alt hover:bg-state-base-hover-alt',
|
varItem.id === currentVar?.var?.id && 'bg-state-base-hover-alt hover:bg-state-base-hover-alt',
|
||||||
)}
|
)}
|
||||||
onClick={() => handleSelectVar(varItem, varType)}
|
onClick={() => handleSelectVar(varItem, varType)}
|
||||||
>
|
>
|
||||||
|
@ -161,7 +161,7 @@ export const useDeleteInspectVar = (appId: string) => {
|
|||||||
return useMutation({
|
return useMutation({
|
||||||
mutationKey: [NAME_SPACE, 'delete inspector var', appId],
|
mutationKey: [NAME_SPACE, 'delete inspector var', appId],
|
||||||
mutationFn: async (varId: string) => {
|
mutationFn: async (varId: string) => {
|
||||||
return del(`workflows/draft/variables/${varId}`)
|
return del(`apps/${appId}/workflows/draft/variables/${varId}`)
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user