feat: add refresh icon to knowledge base items #567

close #567
This commit is contained in:
kangfenmao
2025-01-13 17:42:37 +08:00
parent 662742c958
commit 348d0fb06a
4 changed files with 103 additions and 36 deletions
+30 -1
View File
@@ -15,6 +15,7 @@ import {
renameBase,
updateBase,
updateBases,
updateItem as updateItemAction,
updateItemProcessingStatus,
updateNotes
} from '@renderer/store/knowledge'
@@ -117,7 +118,8 @@ export const useKnowledge = (baseId: string) => {
await db.knowledge_notes.put(updatedNote)
dispatch(updateNotes({ baseId, item: updatedNote }))
}
setTimeout(() => KnowledgeQueue.checkAllBases(), 0)
const noteItem = base?.items.find((item) => item.id === noteId)
noteItem && refreshItem(noteItem)
}
// 获取笔记内容
@@ -125,6 +127,10 @@ export const useKnowledge = (baseId: string) => {
return await db.knowledge_notes.get(noteId)
}
const updateItem = (item: KnowledgeItem) => {
dispatch(updateItemAction({ baseId, item }))
}
// 移除项目
const removeItem = async (item: KnowledgeItem) => {
dispatch(removeItemAction({ baseId, item }))
@@ -138,6 +144,27 @@ export const useKnowledge = (baseId: string) => {
}
}
// 刷新项目
const refreshItem = async (item: KnowledgeItem) => {
const status = getProcessingStatus(item.id)
if (status === 'pending' || status === 'processing') {
return
}
if (base && item.uniqueId) {
await window.api.knowledgeBase.remove({ uniqueId: item.uniqueId, base: getKnowledgeBaseParams(base) })
updateItem({
...item,
processingStatus: 'pending',
processingProgress: 0,
processingError: '',
uniqueId: undefined
})
setTimeout(() => KnowledgeQueue.checkAllBases(), 0)
}
}
// 更新处理状态
const updateItemStatus = (itemId: string, status: ProcessingStatus, progress?: number, error?: string) => {
dispatch(
@@ -238,7 +265,9 @@ export const useKnowledge = (baseId: string) => {
addNote,
updateNoteContent,
getNoteContent,
updateItem,
updateItemStatus,
refreshItem,
getProcessingStatus,
getProcessingItemsByType,
clearCompleted,