Katello/katello

View on GitHub
webpack/components/extensions/HostDetails/DetailsTabCards/RecentCommunicationCardExtensions.js

Summary

Maintainability
A
40 mins
Test Coverage
import React from 'react';
import PropTypes from 'prop-types';
import RelativeDateTime from 'foremanReact/components/common/dates/RelativeDateTime';
import {
  DescriptionListGroup,
  DescriptionListTerm,
  DescriptionListDescription,
} from '@patternfly/react-core';
import { translate as __ } from 'foremanReact/common/I18n';

const RecentCommunicationCardExtensions = ({ hostDetails }) => {
  const { subscription_facet_attributes: subscriptionFacetAttributes } = hostDetails;
  if (!Object.keys(subscriptionFacetAttributes ?? {}).includes('last_checkin')) return null;
  const lastCheckin = subscriptionFacetAttributes?.last_checkin;
  return (
    <DescriptionListGroup>
      <DescriptionListTerm>{__('Last check-in:')}</DescriptionListTerm>
      <DescriptionListDescription>
        <RelativeDateTime date={lastCheckin} defaultValue={__('Never')} />
      </DescriptionListDescription>
    </DescriptionListGroup>
  );
};

RecentCommunicationCardExtensions.propTypes = {
  hostDetails: PropTypes.shape({
    subscription_facet_attributes: PropTypes.shape({
      last_checkin: PropTypes.string,
    }),
  }),
};

RecentCommunicationCardExtensions.defaultProps = {
  hostDetails: {},
};

export default RecentCommunicationCardExtensions;