fix: plugin task

This commit is contained in:
StyleZhang 2024-11-13 11:33:39 +08:00
parent 601d267b7a
commit c6d1b7869d
3 changed files with 13 additions and 17 deletions

View File

@ -1,19 +1,12 @@
import { useCallback } from 'react'
import { apiPrefix } from '@/config' import { apiPrefix } from '@/config'
import { fetchWorkspaces } from '@/service/common' import { useSelector } from '@/context/app-context'
let tenantId: string | null | undefined = null
const useGetIcon = () => { const useGetIcon = () => {
const getIconUrl = async (fileName: string) => { const currentWorkspace = useSelector(s => s.currentWorkspace)
if (!tenantId) { const getIconUrl = useCallback((fileName: string) => {
const { workspaces } = await fetchWorkspaces({ return `${apiPrefix}/workspaces/current/plugin/icon?tenant_id=${currentWorkspace.id}&filename=${fileName}`
url: '/workspaces', }, [currentWorkspace.id])
params: {},
})
tenantId = workspaces.find(v => v.current)?.id
}
return `${apiPrefix}/workspaces/current/plugin/icon?tenant_id=${tenantId}&filename=${fileName}`
}
return { return {
getIconUrl, getIconUrl,

View File

@ -20,6 +20,7 @@ import ProgressCircle from '@/app/components/base/progress-bar/progress-circle'
import CardIcon from '@/app/components/plugins/card/base/card-icon' import CardIcon from '@/app/components/plugins/card/base/card-icon'
import cn from '@/utils/classnames' import cn from '@/utils/classnames'
import { useGetLanguage } from '@/context/i18n' import { useGetLanguage } from '@/context/i18n'
import useGetIcon from '@/app/components/plugins/install-plugin/base/use-get-icon'
const PluginTasks = () => { const PluginTasks = () => {
const { t } = useTranslation() const { t } = useTranslation()
@ -32,6 +33,7 @@ const PluginTasks = () => {
totalPluginsLength, totalPluginsLength,
handleClearErrorPlugin, handleClearErrorPlugin,
} = usePluginTaskStatus() } = usePluginTaskStatus()
const { getIconUrl } = useGetIcon()
const isInstalling = runningPlugins.length > 0 && errorPlugins.length === 0 && successPlugins.length === 0 const isInstalling = runningPlugins.length > 0 && errorPlugins.length === 0 && successPlugins.length === 0
const isInstallingWithError = errorPlugins.length > 0 && errorPlugins.length < totalPluginsLength const isInstallingWithError = errorPlugins.length > 0 && errorPlugins.length < totalPluginsLength
@ -123,7 +125,8 @@ const PluginTasks = () => {
<div className='relative flex items-center justify-center mr-2 w-6 h-6 rounded-md border-[0.5px] border-components-panel-border-subtle bg-background-default-dodge'> <div className='relative flex items-center justify-center mr-2 w-6 h-6 rounded-md border-[0.5px] border-components-panel-border-subtle bg-background-default-dodge'>
<RiErrorWarningFill className='absolute -right-0.5 -bottom-0.5 w-3 h-3 text-text-destructive' /> <RiErrorWarningFill className='absolute -right-0.5 -bottom-0.5 w-3 h-3 text-text-destructive' />
<CardIcon <CardIcon
src={errorPlugin.icon} size='tiny'
src={getIconUrl(errorPlugin.icon)}
/> />
</div> </div>
<div className='grow system-md-regular text-text-secondary truncate'> <div className='grow system-md-regular text-text-secondary truncate'>

View File

@ -120,7 +120,7 @@ export const useMutationPluginsFromMarketplace = () => {
const usePluginTaskListKey = [NAME_SPACE, 'pluginTaskList'] const usePluginTaskListKey = [NAME_SPACE, 'pluginTaskList']
export const usePluginTaskList = () => { export const usePluginTaskList = () => {
const [enabled, setEnabled] = useState(false) const [enabled, setEnabled] = useState(true)
const { const {
data, data,
isFetched, isFetched,
@ -137,7 +137,7 @@ export const usePluginTaskList = () => {
return currentData return currentData
}, },
refetchInterval: 5000, // refetchInterval: 5000,
enabled, enabled,
}) })
const handleRefetch = useCallback(() => { const handleRefetch = useCallback(() => {
@ -157,7 +157,7 @@ export const usePluginTaskList = () => {
export const useMutationClearTaskPlugin = () => { export const useMutationClearTaskPlugin = () => {
return useMutation({ return useMutation({
mutationFn: ({ taskId, pluginId }: { taskId: string; pluginId: string }) => { mutationFn: ({ taskId, pluginId }: { taskId: string; pluginId: string }) => {
return post<{ success: boolean }>(`/workspaces/current/plugin/task/${taskId}/delete/${pluginId}`) return post<{ success: boolean }>(`/workspaces/current/plugin/tasks/${taskId}/delete/${pluginId}`)
}, },
}) })
} }