feat: update conversation vars after change

pull/21369/head
Joel 12 months ago
parent 0b9800cf69
commit 9271774e67

@ -25,6 +25,7 @@ import { BlockEnum } from '@/app/components/workflow/types'
import I18n from '@/context/i18n' import I18n from '@/context/i18n'
import { LanguagesSupported } from '@/i18n/language' import { LanguagesSupported } from '@/i18n/language'
import cn from '@/utils/classnames' import cn from '@/utils/classnames'
import useInspectVarsCrud from '../../hooks/use-inspect-vars-crud'
const ChatVariablePanel = () => { const ChatVariablePanel = () => {
const { t } = useTranslation() const { t } = useTranslation()
@ -34,6 +35,16 @@ const ChatVariablePanel = () => {
const varList = useStore(s => s.conversationVariables) as ConversationVariable[] const varList = useStore(s => s.conversationVariables) as ConversationVariable[]
const updateChatVarList = useStore(s => s.setConversationVariables) const updateChatVarList = useStore(s => s.setConversationVariables)
const { doSyncWorkflowDraft } = useNodesSyncDraft() const { doSyncWorkflowDraft } = useNodesSyncDraft()
const {
invalidateConversationVarValues,
} = useInspectVarsCrud()
const handleVarChanged = useCallback(() => {
doSyncWorkflowDraft(false, {
onSuccess() {
invalidateConversationVarValues()
},
})
}, [doSyncWorkflowDraft, invalidateConversationVarValues])
const [showTip, setShowTip] = useState(true) const [showTip, setShowTip] = useState(true)
const [showVariableModal, setShowVariableModal] = useState(false) const [showVariableModal, setShowVariableModal] = useState(false)
@ -73,8 +84,8 @@ const ChatVariablePanel = () => {
updateChatVarList(varList.filter(v => v.id !== chatVar.id)) updateChatVarList(varList.filter(v => v.id !== chatVar.id))
setCacheForDelete(undefined) setCacheForDelete(undefined)
setShowRemoveConfirm(false) setShowRemoveConfirm(false)
doSyncWorkflowDraft() handleVarChanged()
}, [doSyncWorkflowDraft, removeUsedVarInNodes, updateChatVarList, varList]) }, [handleVarChanged, removeUsedVarInNodes, updateChatVarList, varList])
const deleteCheck = useCallback((chatVar: ConversationVariable) => { const deleteCheck = useCallback((chatVar: ConversationVariable) => {
const effectedNodes = getEffectedNodes(chatVar) const effectedNodes = getEffectedNodes(chatVar)
@ -92,7 +103,7 @@ const ChatVariablePanel = () => {
if (!currentVar) { if (!currentVar) {
const newList = [chatVar, ...varList] const newList = [chatVar, ...varList]
updateChatVarList(newList) updateChatVarList(newList)
doSyncWorkflowDraft() handleVarChanged()
return return
} }
// edit chatVar // edit chatVar
@ -110,8 +121,8 @@ const ChatVariablePanel = () => {
}) })
setNodes(newNodes) setNodes(newNodes)
} }
doSyncWorkflowDraft() handleVarChanged()
}, [currentVar, doSyncWorkflowDraft, getEffectedNodes, store, updateChatVarList, varList]) }, [currentVar, getEffectedNodes, handleVarChanged, store, updateChatVarList, varList])
return ( return (
<div <div

Loading…
Cancel
Save