import React, { useCallback, useState } from "react"; import { Tooltip, Button, Icon, TextContent, Text, } from "@patternfly/react-core"; import { TrashIcon } from "@patternfly/react-icons"; import { ConfirmationModal } from "#/components/ConfirmationModal"; // eslint-disable-next-line @typescript-eslint/no-namespace export namespace RemoveSourceAction { export type ConfirmEventHandler = ( event: React.MouseEvent & { dismissConfirmationModal: () => void; showConfirmationModal: () => void; } ) => void; export type Props = { sourceId: string; isDisabled: boolean; onConfirm?: ConfirmEventHandler; sourceName?: string; }; } export const RemoveSourceAction: React.FC = ( props ) => { const { sourceId, isDisabled = false, onConfirm, sourceName } = props; const [shouldShowConfirmationModal, setShouldShowConfirmationModal] = useState(false); const dismissConfirmationModal = useCallback((): void => { setShouldShowConfirmationModal(false); }, []); const showConfirmationModal = useCallback((): void => { setShouldShowConfirmationModal(true); }, []); const handleConfirm = useCallback( (event) => { if (onConfirm) { event.dismissConfirmationModal = dismissConfirmationModal; onConfirm(event); } }, [dismissConfirmationModal, onConfirm] ); return ( <> {onConfirm && shouldShowConfirmationModal && ( Are you sure you want to delete {sourceName ? sourceName : "this environment"}?
To use it again, create a new discovery image and redeploy it.
)} ); }; RemoveSourceAction.displayName = "RemoveSourceAction";