chore: update installPluginFromGitHub component

This commit is contained in:
Yi 2024-11-05 11:40:52 +08:00
parent 691dbf9d17
commit 4028bb4f58
2 changed files with 14 additions and 6 deletions

View File

@ -6,7 +6,7 @@ import type { Item } from '@/app/components/base/select'
import type { InstallState } from '@/app/components/plugins/types'
import { useGitHubReleases, useGitHubUpload } from '../hooks'
import { parseGitHubUrl } from '../utils'
import type { PluginDeclaration } from '../../types'
import type { PluginDeclaration, UpdatePluginPayload } from '../../types'
import { InstallStepFromGitHub } from '../../types'
import Toast from '@/app/components/base/toast'
import SetURL from './steps/setURL'
@ -16,16 +16,17 @@ import Loaded from './steps/loaded'
import { useTranslation } from 'react-i18next'
type InstallFromGitHubProps = {
updatePayload?: UpdatePluginPayload
onClose: () => void
}
const InstallFromGitHub: React.FC<InstallFromGitHubProps> = ({ onClose }) => {
const InstallFromGitHub: React.FC<InstallFromGitHubProps> = ({ updatePayload, onClose }) => {
const { t } = useTranslation()
const [state, setState] = useState<InstallState>({
step: InstallStepFromGitHub.setUrl,
repoUrl: '',
selectedVersion: '',
selectedPackage: '',
step: updatePayload ? InstallStepFromGitHub.selectPackage : InstallStepFromGitHub.setUrl,
repoUrl: updatePayload?.url || '',
selectedVersion: updatePayload?.currVersion || '',
selectedPackage: updatePayload?.currPackage || '',
releases: [],
})
const [uniqueIdentifier, setUniqueIdentifier] = useState<string | null>(null)
@ -140,6 +141,7 @@ const InstallFromGitHub: React.FC<InstallFromGitHubProps> = ({ onClose }) => {
)}
{state.step === InstallStepFromGitHub.selectPackage && (
<SelectPackage
isEdit={Boolean(updatePayload)}
selectedVersion={state.selectedVersion}
versions={versions}
onSelectVersion={item => setState(prevState => ({ ...prevState, selectedVersion: item.value as string }))}

View File

@ -70,6 +70,12 @@ export type PluginDeclaration = {
model: any // TODO
}
export type UpdatePluginPayload = {
url: string
currVersion: string
currPackage: string
}
export type PluginManifestInMarket = {
name: string
org: string