import React, { useState } from 'react'; import { useSelector, shallowEqual } from 'react-redux'; import { useParams } from 'react-router-dom'; import { Grid, GridItem, TextContent, Text, TextVariants, Button, Flex, FlexItem, Dropdown, DropdownItem, KebabToggle, DropdownPosition, } from '@patternfly/react-core'; import { ExternalLinkAltIcon } from '@patternfly/react-icons'; import { translate as __ } from 'foremanReact/common/I18n'; import DetailsContainer from './DetailsContainer'; import ContentViewInfo from './ContentViewInfo'; import ContentViewVersionsRoutes from './Versions'; import ContentViewFilterRoutes from './Filters'; import ContentViewRepositories from './Repositories/ContentViewRepositories'; import ContentViewComponents from './ComponentContentViews/ContentViewComponents'; import ContentViewHistories from './Histories/ContentViewHistories'; import { selectCVDetails } from './ContentViewDetailSelectors'; import RoutedTabs from '../../../components/RoutedTabs'; import ContentViewIcon from '../components/ContentViewIcon'; import CVBreadCrumb from '../components/CVBreadCrumb'; import PublishContentViewWizard from '../Publish/PublishContentViewWizard'; import { hasPermission } from '../helpers'; import CopyContentViewModal from '../Copy/CopyContentViewModal'; import ContentViewDeleteWizard from '../Delete/ContentViewDeleteWizard'; export default () => { const { id } = useParams(); const cvId = Number(id); const details = useSelector(state => selectCVDetails(state, cvId), shallowEqual); const [isPublishModalOpen, setIsPublishModalOpen] = useState(false); const [currentStep, setCurrentStep] = useState(1); const [dropDownOpen, setDropdownOpen] = useState(false); const [copying, setCopying] = useState(false); const [deleting, setDeleting] = useState(false); const dropDownItems = [ { setCopying(true); }} > {__('Copy')} , { setDeleting(true); }} > {__('Delete')} , ]; const { name, composite, permissions, environments, versions, } = details; const tabs = [ { key: 'details', title: __('Details'), content: , }, { key: 'versions', title: __('Versions'), content: , }, ...composite ? [{ key: 'contentviews', title: __('Content views'), content: , }] : [{ key: 'repositories', title: __('Repositories'), content: , }, { key: 'filters', title: __('Filters'), content: , }], { key: 'history', title: __('History'), content: , }, ]; return ( <> {hasPermission(permissions, 'publish_content_views') && {isPublishModalOpen && } } } isOpen={dropDownOpen} isPlain dropdownItems={dropDownItems} /> {copying && } {deleting && } ); };