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";