fix: return invalidate promises and parallelize invalidations

This commit is contained in:
yyh 2026-02-05 11:42:59 +08:00
parent 740fafc926
commit aad15a0777
No known key found for this signature in database
6 changed files with 43 additions and 32 deletions

View File

@ -193,14 +193,16 @@ export const useToolSelectorState = ({
}, [value, onSelect])
const handleInstall = useCallback(async () => {
const invalidateBuiltinPromise = invalidateAllBuiltinTools()
const invalidateInstalledPromise = invalidateInstalledPluginList()
try {
await invalidateAllBuiltinTools()
await invalidateBuiltinPromise
}
catch (error) {
console.error('Failed to invalidate built-in tools cache', error)
}
try {
await invalidateInstalledPluginList()
await invalidateInstalledPromise
}
catch (error) {
console.error('Failed to invalidate installed plugin list cache', error)

View File

@ -221,9 +221,11 @@ export const useInspectVarsCrudCommon = ({
const deleteAllInspectorVars = useCallback(async () => {
const { deleteAllInspectVars } = workflowStore.getState()
await doDeleteAllInspectorVars()
await invalidateConversationVarValues()
await invalidateSysVarValues()
invalidateSandboxFiles()
await Promise.all([
invalidateConversationVarValues(),
invalidateSysVarValues(),
invalidateSandboxFiles(),
])
deleteAllInspectVars()
handleEdgeCancelRunningStatus()
}, [doDeleteAllInspectorVars, invalidateConversationVarValues, invalidateSysVarValues, invalidateSandboxFiles, workflowStore, handleEdgeCancelRunningStatus])

View File

@ -35,7 +35,7 @@ export const useCreateMetaData = (datasetId: string) => {
export const useInvalidAllDocumentMetaData = (datasetId: string) => {
const queryClient = useQueryClient()
return () => {
queryClient.invalidateQueries({
return queryClient.invalidateQueries({
queryKey: [NAME_SPACE, 'document', datasetId],
exact: false, // invalidate all document metadata: [NAME_SPACE, 'document', datasetId, documentId]
})
@ -48,12 +48,14 @@ const useInvalidAllMetaData = (datasetId: string) => {
const invalidateAllDocumentMetaData = useInvalidAllDocumentMetaData(datasetId)
return async () => {
// meta data in dataset
await invalidDatasetMetaData()
// meta data in document list
invalidDocumentList()
// meta data in single document
await invalidateAllDocumentMetaData() // meta data in document
await Promise.all([
// meta data in dataset
invalidDatasetMetaData(),
// meta data in document list
invalidDocumentList(),
// meta data in single document
invalidateAllDocumentMetaData(),
])
}
}
@ -113,24 +115,27 @@ export const useBatchUpdateDocMetadata = () => {
operation_data: payload.metadata_list,
},
})
// meta data in dataset
await queryClient.invalidateQueries({
const invalidateDataset = queryClient.invalidateQueries({
queryKey: [NAME_SPACE, 'dataset', payload.dataset_id],
})
// meta data in document list
await queryClient.invalidateQueries({
const invalidateDocumentList = queryClient.invalidateQueries({
queryKey: [NAME_SPACE, 'document', payload.dataset_id],
})
await queryClient.invalidateQueries({
const invalidateDocumentTable = queryClient.invalidateQueries({
queryKey: [...useDocumentListKey, payload.dataset_id],
})
// meta data in single document
await Promise.all(documentIds.map(documentId => queryClient.invalidateQueries(
const invalidateDocuments = Promise.all(documentIds.map(documentId => queryClient.invalidateQueries(
{
queryKey: [NAME_SPACE, 'document', payload.dataset_id, documentId],
},
)))
await Promise.all([
invalidateDataset,
invalidateDocumentList,
invalidateDocumentTable,
invalidateDocuments,
])
},
})
}
@ -140,7 +145,7 @@ export const useUpdateBuiltInStatus = (datasetId: string) => {
return useMutation({
mutationFn: async (enabled: boolean) => {
await post(`/datasets/${datasetId}/metadata/built-in/${enabled ? 'enable' : 'disable'}`)
invalidDatasetMetaData()
void invalidDatasetMetaData()
},
})
}

View File

@ -8,8 +8,8 @@ export const useInvalid = (key?: QueryKey) => {
const queryClient = useQueryClient()
return () => {
if (!key)
return
queryClient.invalidateQueries(
return Promise.resolve()
return queryClient.invalidateQueries(
{
queryKey: key,
},
@ -21,8 +21,8 @@ export const useReset = (key?: QueryKey) => {
const queryClient = useQueryClient()
return () => {
if (!key)
return
queryClient.resetQueries(
return Promise.resolve()
return queryClient.resetQueries(
{
queryKey: key,
},

View File

@ -26,7 +26,7 @@ export const useEndpointList = (pluginID: string) => {
export const useInvalidateEndpointList = () => {
const queryClient = useQueryClient()
return (pluginID: string) => {
queryClient.invalidateQueries(
return queryClient.invalidateQueries(
{
queryKey: [NAME_SPACE, 'list', pluginID],
},

View File

@ -55,12 +55,14 @@ export function useSandboxFileDownloadUrl(
export function useInvalidateSandboxFiles() {
const queryClient = useQueryClient()
return useCallback(() => {
queryClient.invalidateQueries({
queryKey: consoleQuery.sandboxFile.listFiles.key(),
})
queryClient.invalidateQueries({
queryKey: consoleQuery.sandboxFile.downloadFile.key(),
})
return Promise.all([
queryClient.invalidateQueries({
queryKey: consoleQuery.sandboxFile.listFiles.key(),
}),
queryClient.invalidateQueries({
queryKey: consoleQuery.sandboxFile.downloadFile.key(),
}),
])
}, [queryClient])
}