mirror of
https://github.com/langgenius/dify.git
synced 2026-06-17 23:21:12 +08:00
Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: yyh <yuanyouhuilyz@gmail.com> Co-authored-by: Joel <iamjoel007@gmail.com> Co-authored-by: hjlarry <hjlarry@163.com> Co-authored-by: fatelei <fatelei@gmail.com> Co-authored-by: Asuka Minato <i@asukaminato.eu.org> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Xiyuan Chen <52963600+GareArc@users.noreply.github.com> Co-authored-by: gigglewang <gigglewang@dify.ai> Co-authored-by: Yunlu Wen <yunlu.wen@dify.ai> Co-authored-by: chariri <w@chariri.moe> Co-authored-by: Evan <2869018789@qq.com> Co-authored-by: yyh <92089059+lyzno1@users.noreply.github.com>
62 lines
1.8 KiB
TypeScript
62 lines
1.8 KiB
TypeScript
'use client'
|
|
import type { FC } from 'react'
|
|
import type { Dependency, InstallStatus, Plugin, VersionProps } from '../../types'
|
|
import * as React from 'react'
|
|
import { useCallback, useState } from 'react'
|
|
import { InstallStep } from '../../types'
|
|
import Install from './steps/install'
|
|
import Installed from './steps/installed'
|
|
|
|
type Props = Readonly<{
|
|
step: InstallStep
|
|
onStepChange: (step: InstallStep) => void
|
|
onStartToInstall: () => void
|
|
setIsInstalling: (isInstalling: boolean) => void
|
|
allPlugins: Dependency[]
|
|
onClose: () => void
|
|
isFromMarketPlace?: boolean
|
|
}>
|
|
|
|
const ReadyToInstall: FC<Props> = ({
|
|
step,
|
|
onStepChange,
|
|
onStartToInstall,
|
|
setIsInstalling,
|
|
allPlugins,
|
|
onClose,
|
|
isFromMarketPlace,
|
|
}) => {
|
|
const [installedPlugins, setInstalledPlugins] = useState<Plugin[]>([])
|
|
const [installStatus, setInstallStatus] = useState<InstallStatus[]>([])
|
|
const [installedVersionInfo, setInstalledVersionInfo] = useState<VersionProps[]>([])
|
|
const handleInstalled = useCallback((plugins: Plugin[], installStatus: InstallStatus[], versionInfo: VersionProps[]) => {
|
|
setInstallStatus(installStatus)
|
|
setInstalledPlugins(plugins)
|
|
setInstalledVersionInfo(versionInfo)
|
|
onStepChange(InstallStep.installed)
|
|
setIsInstalling(false)
|
|
}, [onStepChange, setIsInstalling])
|
|
return (
|
|
<>
|
|
{step === InstallStep.readyToInstall && (
|
|
<Install
|
|
allPlugins={allPlugins}
|
|
onCancel={onClose}
|
|
onStartToInstall={onStartToInstall}
|
|
onInstalled={handleInstalled}
|
|
isFromMarketPlace={isFromMarketPlace}
|
|
/>
|
|
)}
|
|
{step === InstallStep.installed && (
|
|
<Installed
|
|
list={installedPlugins}
|
|
installStatus={installStatus}
|
|
versionInfo={installedVersionInfo}
|
|
onCancel={onClose}
|
|
/>
|
|
)}
|
|
</>
|
|
)
|
|
}
|
|
export default React.memo(ReadyToInstall)
|