fix: not handleinstall error

This commit is contained in:
Joel 2024-11-29 15:09:23 +08:00
parent 35ef874867
commit 84cad5969e
2 changed files with 26 additions and 15 deletions

View File

@ -1,6 +1,7 @@
import { checkTaskStatus as fetchCheckTaskStatus } from '@/service/plugins'
import type { PluginStatus } from '../../types'
import { TaskStatus } from '../../types'
import { sleep } from '@/utils'
const INTERVAL = 10 * 1000 // 10 seconds
@ -17,31 +18,37 @@ function checkTaskStatus() {
taskId,
pluginUniqueIdentifier,
}: Params) => {
if (isStop) return
if (isStop) {
return {
status: TaskStatus.success,
}
}
const res = await fetchCheckTaskStatus(taskId)
const { plugins } = res.task
const plugin = plugins.find((p: PluginStatus) => p.plugin_unique_identifier === pluginUniqueIdentifier)
if (!plugin) {
nextStatus = TaskStatus.failed
Promise.reject(new Error('Plugin package not found'))
return
return {
status: TaskStatus.failed,
error: 'Plugin package not found',
}
}
nextStatus = plugin.status
if (nextStatus === TaskStatus.running) {
setTimeout(async () => {
await doCheckStatus({
taskId,
pluginUniqueIdentifier,
})
}, INTERVAL)
return
await sleep(INTERVAL)
return await doCheckStatus({
taskId,
pluginUniqueIdentifier,
})
}
if (nextStatus === TaskStatus.failed) {
Promise.reject(plugin.message)
return
return {
status: TaskStatus.failed,
error: plugin.message,
}
}
return ({
status: nextStatus,
status: TaskStatus.success,
})
}

View File

@ -1,7 +1,7 @@
'use client'
import type { FC } from 'react'
import React, { useEffect } from 'react'
import type { PluginDeclaration } from '../../../types'
import { type PluginDeclaration, TaskStatus } from '../../../types'
import Card from '../../../card'
import { pluginManifestToCardPluginProps } from '../../utils'
import Button from '@/app/components/base/button'
@ -95,10 +95,14 @@ const Installed: FC<Props> = ({
return
}
handleRefetch()
await check({
const { status, error } = await check({
taskId,
pluginUniqueIdentifier: uniqueIdentifier,
})
if (status === TaskStatus.failed) {
onFailed(error)
return
}
onInstalled()
}
catch (e) {