fix: other install error

This commit is contained in:
Joel 2024-11-29 15:18:07 +08:00
parent 84cad5969e
commit b78ab0bd69
3 changed files with 31 additions and 19 deletions

View File

@ -2,7 +2,7 @@
import React from 'react'
import Button from '@/app/components/base/button'
import type { PluginDeclaration, PluginType, UpdateFromGitHubPayload } from '../../../types'
import { type PluginDeclaration, type PluginType, TaskStatus, type UpdateFromGitHubPayload } from '../../../types'
import Card from '../../../card'
import Badge, { BadgeState } from '@/app/components/base/badge/index'
import { pluginManifestToCardPluginProps } from '../../utils'
@ -53,8 +53,9 @@ const Loaded: React.FC<LoadedProps> = ({
try {
const { owner, repo } = parseGitHubUrl(repoUrl)
let taskId
if (updatePayload) {
const { all_installed: isInstalled, task_id: taskId } = await updateFromGitHub(
const { all_installed: isInstalled, task_id } = await updateFromGitHub(
`${owner}/${repo}`,
selectedVersion,
selectedPackage,
@ -62,40 +63,42 @@ const Loaded: React.FC<LoadedProps> = ({
uniqueIdentifier,
)
taskId = task_id
if (isInstalled) {
onInstalled()
return
}
handleRefetch()
await check({
taskId,
pluginUniqueIdentifier: uniqueIdentifier,
})
onInstalled()
}
else {
const { all_installed: isInstalled, task_id: taskId } = await installPackageFromGitHub({
const { all_installed: isInstalled, task_id } = await installPackageFromGitHub({
repoUrl: `${owner}/${repo}`,
selectedVersion,
selectedPackage,
uniqueIdentifier,
})
taskId = task_id
if (isInstalled) {
onInstalled()
return
}
handleRefetch()
await check({
taskId,
pluginUniqueIdentifier: uniqueIdentifier,
})
onInstalled()
}
const { status, error } = await check({
taskId,
pluginUniqueIdentifier: uniqueIdentifier,
})
if (status === TaskStatus.failed) {
onFailed(error)
return
}
onInstalled()
}
catch (e) {
if (typeof e === 'string') {

View File

@ -2,7 +2,7 @@
import type { FC } from 'react'
import React, { useEffect } from 'react'
// import { RiInformation2Line } from '@remixicon/react'
import type { Plugin, PluginManifestInMarket } from '../../../types'
import { type Plugin, type PluginManifestInMarket, TaskStatus } from '../../../types'
import Card from '../../../card'
import { pluginManifestInMarketToPluginProps } from '../../utils'
import Button from '@/app/components/base/button'
@ -93,10 +93,14 @@ const Installed: FC<Props> = ({
onInstalled()
return
}
await check({
const { status, error } = await check({
taskId,
pluginUniqueIdentifier: uniqueIdentifier,
})
if (status === TaskStatus.failed) {
onFailed(error)
return
}
onInstalled()
}
catch (e) {

View File

@ -7,12 +7,13 @@ import Card from '@/app/components/plugins/card'
import Modal from '@/app/components/base/modal'
import Button from '@/app/components/base/button'
import Badge, { BadgeState } from '@/app/components/base/badge/index'
import type { UpdateFromMarketPlacePayload } from '../types'
import { TaskStatus, type UpdateFromMarketPlacePayload } from '../types'
import { pluginManifestToCardPluginProps } from '@/app/components/plugins/install-plugin/utils'
import useGetIcon from '../install-plugin/base/use-get-icon'
import { updateFromMarketPlace } from '@/service/plugins'
import checkTaskStatus from '@/app/components/plugins/install-plugin/base/check-task-status'
import { usePluginTaskList } from '@/service/use-plugins'
import Toast from '../../base/toast'
const i18nPrefix = 'plugin.upgrade'
@ -83,10 +84,14 @@ const UpdatePluginModal: FC<Props> = ({
return
}
handleRefetch()
await check({
const { status, error } = await check({
taskId,
pluginUniqueIdentifier: targetPackageInfo.id,
})
if (status === TaskStatus.failed) {
Toast.notify({ type: 'error', message: error! })
return
}
onSave()
}
// eslint-disable-next-line unused-imports/no-unused-vars