mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2026-01-08 14:29:15 +08:00
feat: remove knowledge base references when deleting a base
This commit is contained in:
parent
22920204d1
commit
186a1612e8
@ -26,6 +26,9 @@ import { useEffect, useState } from 'react'
|
|||||||
import { useDispatch, useSelector } from 'react-redux'
|
import { useDispatch, useSelector } from 'react-redux'
|
||||||
import { v4 as uuidv4 } from 'uuid'
|
import { v4 as uuidv4 } from 'uuid'
|
||||||
|
|
||||||
|
import { useAgents } from './useAgents'
|
||||||
|
import { useAssistants } from './useAssistant'
|
||||||
|
|
||||||
export const useKnowledge = (baseId: string) => {
|
export const useKnowledge = (baseId: string) => {
|
||||||
const dispatch = useDispatch()
|
const dispatch = useDispatch()
|
||||||
const base = useSelector((state: RootState) => state.knowledge.bases.find((b) => b.id === baseId))
|
const base = useSelector((state: RootState) => state.knowledge.bases.find((b) => b.id === baseId))
|
||||||
@ -281,6 +284,8 @@ export const useKnowledge = (baseId: string) => {
|
|||||||
export const useKnowledgeBases = () => {
|
export const useKnowledgeBases = () => {
|
||||||
const dispatch = useDispatch()
|
const dispatch = useDispatch()
|
||||||
const bases = useSelector((state: RootState) => state.knowledge.bases)
|
const bases = useSelector((state: RootState) => state.knowledge.bases)
|
||||||
|
const { assistants, updateAssistants } = useAssistants()
|
||||||
|
const { agents, updateAgents } = useAgents()
|
||||||
|
|
||||||
const addKnowledgeBase = (base: KnowledgeBase) => {
|
const addKnowledgeBase = (base: KnowledgeBase) => {
|
||||||
dispatch(addBase(base))
|
dispatch(addBase(base))
|
||||||
@ -292,6 +297,25 @@ export const useKnowledgeBases = () => {
|
|||||||
|
|
||||||
const deleteKnowledgeBase = (baseId: string) => {
|
const deleteKnowledgeBase = (baseId: string) => {
|
||||||
dispatch(deleteBase({ baseId }))
|
dispatch(deleteBase({ baseId }))
|
||||||
|
|
||||||
|
// remove assistant knowledge_base
|
||||||
|
const _assistants = assistants.map((assistant) => {
|
||||||
|
if (assistant.knowledge_base?.id === baseId) {
|
||||||
|
return { ...assistant, knowledge_base: undefined }
|
||||||
|
}
|
||||||
|
return assistant
|
||||||
|
})
|
||||||
|
|
||||||
|
// remove agent knowledge_base
|
||||||
|
const _agents = agents.map((agent) => {
|
||||||
|
if (agent.knowledge_base?.id === baseId) {
|
||||||
|
return { ...agent, knowledge_base: undefined }
|
||||||
|
}
|
||||||
|
return agent
|
||||||
|
})
|
||||||
|
|
||||||
|
updateAssistants(_assistants)
|
||||||
|
updateAgents(_agents)
|
||||||
}
|
}
|
||||||
|
|
||||||
const updateKnowledgeBases = (bases: KnowledgeBase[]) => {
|
const updateKnowledgeBases = (bases: KnowledgeBase[]) => {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user