fix: plugin task

This commit is contained in:
StyleZhang 2024-11-25 17:54:28 +08:00
parent 8ad9ab40df
commit 57756b18e4
3 changed files with 23 additions and 4 deletions

View File

@ -7,6 +7,7 @@ import {
import { TaskStatus } from '@/app/components/plugins/types'
import type { PluginStatus } from '@/app/components/plugins/types'
import {
useMutationClearAllTaskPlugin,
useMutationClearTaskPlugin,
usePluginTaskList,
} from '@/service/use-plugins'
@ -14,8 +15,10 @@ import {
export const usePluginTaskStatus = () => {
const {
pluginTasks,
handleRefetch,
} = usePluginTaskList()
const { mutate } = useMutationClearTaskPlugin()
const { mutateAsync } = useMutationClearTaskPlugin()
const { mutateAsync: mutateAsyncClearAll } = useMutationClearAllTaskPlugin()
const allPlugins = pluginTasks.filter(task => task.status !== TaskStatus.success).map(task => task.plugins.map((plugin) => {
return {
...plugin,
@ -35,12 +38,17 @@ export const usePluginTaskStatus = () => {
successPlugins.push(plugin)
})
const handleClearErrorPlugin = useCallback((taskId: string, pluginId: string) => {
mutate({
const handleClearErrorPlugin = useCallback(async (taskId: string, pluginId: string) => {
await mutateAsync({
taskId,
pluginId,
})
}, [mutate])
handleRefetch()
}, [mutateAsync, handleRefetch])
const handleClearAllErrorPlugin = useCallback(async () => {
await mutateAsyncClearAll()
handleRefetch()
}, [mutateAsyncClearAll, handleRefetch])
const totalPluginsLength = allPlugins.length
const runningPluginsLength = runningPlugins.length
const errorPluginsLength = errorPlugins.length
@ -84,6 +92,7 @@ export const usePluginTaskStatus = () => {
isSuccess,
isFailed,
handleClearErrorPlugin,
handleClearAllErrorPlugin,
opacity,
}
}

View File

@ -38,6 +38,7 @@ const PluginTasks = () => {
isSuccess,
isFailed,
handleClearErrorPlugin,
handleClearAllErrorPlugin,
opacity,
} = usePluginTaskStatus()
const { getIconUrl } = useGetIcon()
@ -133,6 +134,7 @@ const PluginTasks = () => {
className='shrink-0'
size='small'
variant='ghost'
onClick={() => handleClearAllErrorPlugin()}
>
{t('plugin.task.clearAll')}
</Button>

View File

@ -315,6 +315,14 @@ export const useMutationClearTaskPlugin = () => {
})
}
export const useMutationClearAllTaskPlugin = () => {
return useMutation({
mutationFn: () => {
return post<{ success: boolean }>('/workspaces/current/plugin/tasks/delete_all')
},
})
}
export const useMutationCheckDependenciesBeforeImportDSL = () => {
const mutation = useMutation({
mutationFn: ({ dslString, url }: { dslString?: string, url?: string }) => {