import React, { useCallback, useState } from "react"; import { Button, EmptyState as PFEmptyState, EmptyStateActions, EmptyStateBody, EmptyStateFooter, EmptyStateHeader, EmptyStateIcon, } from "@patternfly/react-core"; import { ExclamationCircleIcon, SearchIcon } from "@patternfly/react-icons"; import globalDangerColor200 from "@patternfly/react-tokens/dist/esm/global_danger_color_200"; import { useDiscoverySources } from "#/migration-wizard/contexts/discovery-sources/Context"; import { DiscoverySourceSetupModal } from "./DiscoverySourceSetupModal"; export const EmptyState: React.FC = () => { const discoverySourcesContext = useDiscoverySources(); const [ shouldShowDiscoverySourceSetupModal, setShouldShowDiscoverySetupModal, ] = useState(false); const toggleDiscoverySourceSetupModal = useCallback((): void => { setShouldShowDiscoverySetupModal((lastState) => !lastState); }, []); const handleTryAgain = useCallback(() => { if (!discoverySourcesContext.isLoadingSources) { discoverySourcesContext.listSources(); } }, [discoverySourcesContext]); let emptyStateNode: React.ReactNode = ( } /> Begin by creating a discovery environment. Then download and import the OVA file into your VMware environment. ); if (discoverySourcesContext.errorLoadingSources) { emptyStateNode = ( } /> An error occurred while attempting to detect existing discovery sources ); } return ( <> {emptyStateNode} {shouldShowDiscoverySourceSetupModal && ( { const form = event.currentTarget; const environmentName = form["discoveryEnvironmentName"].value as string; const sshKey = form["discoverySourceSshKey"].value as string; await discoverySourcesContext.downloadSource(environmentName,sshKey); toggleDiscoverySourceSetupModal(); await discoverySourcesContext.listSources(); }} /> )} ); }; EmptyState.displayName = "SourcesTableEmptyState";