import React from 'react';
import PropTypes from 'prop-types';
import { Table } from 'react-bootstrap';
import { translate as __ } from 'foremanReact/common/I18n';
import subscriptionAttributes from './SubscriptionAttributes';
import subscriptionPurposeAttributes from './SubscriptionPurposeAttributes';
const SubscriptionDetailInfo = ({ subscriptionDetails }) => {
const subscriptionLimits = (subDetails) => {
const limits = [];
if (subDetails.sockets) {
limits.push(__('Sockets: %s').replace('%s', subDetails.sockets));
}
if (subDetails.cores) {
limits.push(__('Cores: %s').replace('%s', subDetails.cores));
}
if (subDetails.ram) {
limits.push(__('RAM: %s GB').replace('%s', subDetails.ram));
}
if (limits.length > 0) {
return limits.join(', ');
}
return '';
};
const subscriptionDetailValue = (subDetails, key) => (subDetails[key] == null ? '' : String(subDetails[key]));
const formatInstanceBased = (subDetails) => {
if (subDetails.instance_multiplier == null ||
subDetails.instance_multiplier === '' ||
subDetails.instance_multiplier === 0) {
return __('No');
}
return __('Yes');
};
return (
{__('Subscription Info')}
{Object.keys(subscriptionAttributes).map(key => (
{__(subscriptionAttributes[key])} |
{subscriptionDetailValue(subscriptionDetails, key)} |
))}
{__('Limits')} |
{subscriptionLimits(subscriptionDetails)} |
{__('Instance-based')} |
{formatInstanceBased(subscriptionDetails)} |
{__('System Purpose')}
{Object.keys(subscriptionPurposeAttributes).map(key => (
{__(subscriptionPurposeAttributes[key])} |
{subscriptionDetailValue(subscriptionDetails, key)} |
))}
);
};
SubscriptionDetailInfo.propTypes = {
subscriptionDetails: PropTypes.shape({}).isRequired,
};
export default SubscriptionDetailInfo;