import React, { useContext, useState } from 'react'; import { useSelector } from 'react-redux'; import { Alert, Flex, FlexItem, Label, AlertActionCloseButton } from '@patternfly/react-core'; import { ExclamationTriangleIcon } from '@patternfly/react-icons'; import { translate as __ } from 'foremanReact/common/I18n'; import { selectCVActivationKeys, selectCVHosts } from '../../../ContentViewDetailSelectors'; import DeleteContext from '../DeleteContext'; import { pluralize } from '../../../../../../utils/helpers'; import WizardHeader from '../../../../components/WizardHeader'; const CVVersionRemoveReview = () => { const [alertDismissed, setAlertDismissed] = useState(false); const { cvId, versionNameToRemove, versionEnvironments, selectedEnvSet, selectedEnvForAK, selectedCVNameForAK, selectedCVNameForHosts, selectedEnvForHost, affectedActivationKeys, affectedHosts, deleteFlow, removeDeletionFlow, } = useContext(DeleteContext); const activationKeysResponse = useSelector(state => selectCVActivationKeys(state, cvId)); const hostsResponse = useSelector(state => selectCVHosts(state, cvId)); const { results: hostResponse } = hostsResponse; const { results: akResponse } = activationKeysResponse; const selectedEnv = versionEnvironments.filter(env => selectedEnvSet.has(env.id)); const versionDeleteInfo = __(`Version ${versionNameToRemove} will be deleted from all environments. It will no longer be available for promotion.`); const removalNotice = __(`Version ${versionNameToRemove} will be removed from the environments listed below, and will remain available for later promotion. ` + 'Changes listed below will be effective after clicking Remove.'); return ( <> {!alertDismissed && (deleteFlow || removeDeletionFlow) && setAlertDismissed(true)} />} >

{versionDeleteInfo}

} {!(deleteFlow || removeDeletionFlow) && } {(selectedEnv.length !== 0) && <>

{__('Environments')}

{__('This version will be removed from:')} {selectedEnv?.map(({ name, id }) => )} } {affectedHosts && <>

{__('Content hosts')}

{__(`${pluralize(hostResponse.length, 'host')} will be moved to content view ${selectedCVNameForHosts} in `)}

} {affectedActivationKeys && <>

{__('Activation keys')}

{__(`${pluralize(akResponse.length, 'activation key')} will be moved to content view ${selectedCVNameForAK} in `)}

} ); }; export default CVVersionRemoveReview;