import React from 'react';
import { translate as __ } from 'foremanReact/common/I18n';
import { urlBuilder } from 'foremanReact/common/urlHelpers';
import { camelCase } from 'lodash';
import PropTypes from 'prop-types';
import { Link } from 'react-router-dom';
import ContentConfig from '../../../Content/ContentConfig';
import InactiveText from '../../components/InactiveText';
const ContentViewVersionContent = ({ cvId, versionId, cvVersion }) => {
const {
deb_count: debCount = 0,
docker_manifest_count: dockerManifestCount = 0,
docker_manifest_list_count: dockerManifestListCount = 0,
docker_tag_count: dockerTagCount = 0,
file_count: fileCount = 0,
module_stream_count: moduleStreamCount = 0,
ansible_collection_count: ansibleCollectionCount = 0,
} = cvVersion;
const contentConfigTypes = ContentConfig.filter(({ names: { singularLabel } }) =>
!!cvVersion[`${singularLabel}_count`])
.map(({
names: {
singularLabel, singularLowercase, pluralLowercase, pluralLabel,
},
}) => {
const countParam = `${singularLabel}_count`;
const count = cvVersion[countParam];
return {
pluralLabel,
label: count > 1 ? pluralLowercase : singularLowercase,
count,
};
});
const noCounts =
!Number(debCount) && !Number(dockerManifestCount) && !Number(dockerTagCount) &&
!Number(fileCount) && !Number(moduleStreamCount) && !Number(ansibleCollectionCount) &&
!Number(dockerManifestListCount) && !contentConfigTypes?.length;
if (noCounts) {
return ;
}
return (
<>
{moduleStreamCount > 0 &&
<>
{`${moduleStreamCount} Module streams`}
>
}
{debCount > 0 &&
<>
{`${debCount} Deb packages`}
>
}
{dockerManifestCount > 0 && dockerTagCount > 0 &&
<>
{`${dockerTagCount} Container tags`}
{`${dockerManifestCount} Container manifests`}
>
}
{dockerManifestListCount > 0 &&
<>
{`${dockerManifestListCount} Container manifest lists`}
>
}
{fileCount > 0 &&
<>
{`${fileCount} Files`}
>
}
{contentConfigTypes?.length > 0 &&
contentConfigTypes.map(({ label, count, pluralLabel }) => (
{`${count} ${label}`}
))
}
>
);
};
ContentViewVersionContent.propTypes = {
cvId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
versionId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
cvVersion: PropTypes.shape({
deb_count: PropTypes.number,
docker_manifest_count: PropTypes.number,
docker_manifest_list_count: PropTypes.number,
docker_tag_count: PropTypes.number,
file_count: PropTypes.number,
module_stream_count: PropTypes.number,
ansible_collection_count: PropTypes.number,
}),
};
ContentViewVersionContent.defaultProps = {
cvId: '',
versionId: '',
cvVersion: {
deb_count: 0,
docker_manifest_count: 0,
docker_tag_count: 0,
file_count: 0,
module_stream_count: 0,
ansible_collection_count: 0,
},
};
export default ContentViewVersionContent;