import React, { useState, useEffect } from 'react'; import { useDispatch } from 'react-redux'; import PropTypes from 'prop-types'; import { Button, Grid, GridItem, TextContent, Text, TextVariants, Label, Flex, FlexItem, Dropdown, DropdownItem, KebabToggle, DropdownPosition, } from '@patternfly/react-core'; import { translate as __ } from 'foremanReact/common/I18n'; import { hasPermission } from '../../../helpers'; import ContentViewVersionPromote from '../../Promote/ContentViewVersionPromote'; import getEnvironmentPaths from '../../../components/EnvironmentPaths/EnvironmentPathActions'; import RemoveCVVersionWizard from '../Delete/RemoveCVVersionWizard'; import ActionableDetail from '../../../../../components/ActionableDetail'; const ContentViewVersionDetailsHeader = ({ versionDetails: { version, description, environments, content_view_id: cvId, id, }, onEdit, details: { permissions }, loading, }) => { const dispatch = useDispatch(); useEffect( () => { dispatch(getEnvironmentPaths()); }, [dispatch], ); const [dropdownOpen, setDropdownOpen] = useState(false); const [promoting, setPromoting] = useState(false); const [removingFromEnv, setRemovingFromEnv] = useState(false); const [currentStep, setCurrentStep] = useState(1); const [deleteVersion, setDeleteVersion] = useState(false); const dropDownItems = [ { setRemovingFromEnv(true); }} > {__('Remove from environment')} , { setCurrentStep(1); setDeleteVersion(true); setRemovingFromEnv(true); }} > {__('Delete')} , ]; return ( {__('Version ')}{version} } isOpen={dropdownOpen} dropdownItems={dropDownItems} /> {environments?.map(({ name, id: envId }) => )} {promoting && } {removingFromEnv && } ); }; ContentViewVersionDetailsHeader.propTypes = { versionDetails: PropTypes.shape({ version: PropTypes.string, environments: PropTypes.arrayOf(PropTypes.shape({})), description: PropTypes.string, content_view_id: PropTypes.oneOfType([ PropTypes.string, PropTypes.number, ]), id: PropTypes.oneOfType([ PropTypes.string, PropTypes.number, ]), }).isRequired, onEdit: PropTypes.func.isRequired, details: PropTypes.shape({ permissions: PropTypes.shape({}), }).isRequired, loading: PropTypes.bool.isRequired, }; export default ContentViewVersionDetailsHeader;