12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- 'use client'
- import type { FC } from 'react'
- import React, { useCallback, useState } from 'react'
- import { InstallStep } from '../../types'
- import Install from './steps/install'
- import Installed from './steps/installed'
- import type { Dependency, InstallStatusResponse, Plugin } from '../../types'
- type Props = {
- 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<InstallStatusResponse[]>([])
- const handleInstalled = useCallback((plugins: Plugin[], installStatus: InstallStatusResponse[]) => {
- setInstallStatus(installStatus)
- setInstalledPlugins(plugins)
- 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}
- onCancel={onClose}
- />
- )}
- </>
- )
- }
- export default React.memo(ReadyToInstall)
|