From 57756b18e4835a2932095208349a450d7783e975 Mon Sep 17 00:00:00 2001 From: StyleZhang Date: Mon, 25 Nov 2024 17:54:28 +0800 Subject: [PATCH] fix: plugin task --- .../plugins/plugin-page/plugin-tasks/hooks.ts | 17 +++++++++++++---- .../plugins/plugin-page/plugin-tasks/index.tsx | 2 ++ web/service/use-plugins.ts | 8 ++++++++ 3 files changed, 23 insertions(+), 4 deletions(-) diff --git a/web/app/components/plugins/plugin-page/plugin-tasks/hooks.ts b/web/app/components/plugins/plugin-page/plugin-tasks/hooks.ts index a7abcb644b..e15f9b963a 100644 --- a/web/app/components/plugins/plugin-page/plugin-tasks/hooks.ts +++ b/web/app/components/plugins/plugin-page/plugin-tasks/hooks.ts @@ -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, } } diff --git a/web/app/components/plugins/plugin-page/plugin-tasks/index.tsx b/web/app/components/plugins/plugin-page/plugin-tasks/index.tsx index b3165e7046..9d7345c22e 100644 --- a/web/app/components/plugins/plugin-page/plugin-tasks/index.tsx +++ b/web/app/components/plugins/plugin-page/plugin-tasks/index.tsx @@ -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')} diff --git a/web/service/use-plugins.ts b/web/service/use-plugins.ts index 78c4ff770f..08469023d6 100644 --- a/web/service/use-plugins.ts +++ b/web/service/use-plugins.ts @@ -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 }) => {