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;