import React from 'react'; import PropTypes from 'prop-types'; import { translate as __ } from 'foremanReact/common/I18n'; import { TableComposable, Thead, Tr, Th, Tbody, Td } from '@patternfly/react-table'; import { CheckCircleIcon, TimesCircleIcon } from '@patternfly/react-icons'; import LongDateTime from 'foremanReact/components/common/dates/LongDateTime'; import { urlBuilder } from 'foremanReact/common/urlHelpers'; import { useSet } from 'foremanReact/components/PF4/TableIndexPage/Table/TableHooks'; import ContentViewIcon from '../ContentViews/components/ContentViewIcon'; import ExpandedSmartProxyRepositories from './ExpandedSmartProxyRepositories'; const ExpandableCvDetails = ({ contentViews, contentCounts, envId }) => { const columnHeaders = [ __('Content view'), __('Version'), __('Last published'), __('Synced'), ]; // const { content_counts: contentCounts } = counts; const expandedTableRows = useSet([]); const tableRowIsExpanded = id => expandedTableRows.has(id); return ( {columnHeaders.map(col => ( {col} ))} {contentViews.map((cv, rowIndex) => { const { id, name: cvName, composite, up_to_date: upToDate, cvv_id: versionId, cvv_version: version, repositories, } = cv; const upToDateVal = upToDate ? : ; const isExpanded = tableRowIsExpanded(versionId); return ( expandedTableRows.onToggle(isOpen, versionId), }} /> {cvName}} /> {__('Version ')}{version} {upToDateVal} ); })} ); }; ExpandableCvDetails.propTypes = { contentViews: PropTypes.arrayOf(PropTypes.shape({})), contentCounts: PropTypes.shape({ content_view_versions: PropTypes.shape({}), }), envId: PropTypes.oneOfType([ PropTypes.number, PropTypes.string, // The API can sometimes return strings ]).isRequired, }; ExpandableCvDetails.defaultProps = { contentViews: [], contentCounts: {}, }; export default ExpandableCvDetails;