Sha256: 9a39d2313401099b02698c91b508d49b05b435a3152f90096f0bb11894eb3e05

Contents?: true

Size: 1.76 KB

Versions: 51

Compression:

Stored size: 1.76 KB

Contents

import React from 'react';
import PropTypes from 'prop-types';
import { urlBuilder } from 'foremanReact/common/urlHelpers';
import { translate as __ } from 'foremanReact/common/I18n';
import {
  Text,
  TextContent,
  TextVariants,
} from '@patternfly/react-core';

const ComponentVersion = ({ componentCV }) => {
  const {
    id: componentId, latest, content_view_version: cvVersion, content_view: cv,
  } = componentCV;
  const {
    id: cvId,
    latest_version: latestVersion,
  } = cv;
  const { version, id: versionId } = cvVersion || {};
  const noVersionText = __('Not yet published');
  const latestDescription = __('Latest (automatically updates)');
  const manualVersionText = (latestVersion === version) ? __('Latest version') : __(`New version is available: Version ${latestVersion}`);
  if (componentId) {
    return (
      <>
        <a href={`${urlBuilder('content_views', '')}${cvId}#/versions/${versionId}`}>
          {version ? `Version ${version}` : noVersionText}
        </a>
        <TextContent>
          <Text ouiaId="version" component={TextVariants.small}>
            {latest ? latestDescription : manualVersionText}
          </Text>
        </TextContent>
      </>
    );
  }
  return (
    <a href={`${urlBuilder('content_views', '')}${cvId}${latestVersion ? `#/versions/${versionId}` : ''}`}>
      {latestVersion ? `Version ${latestVersion}` : noVersionText}
    </a>
  );
};

ComponentVersion.propTypes = {
  componentCV: PropTypes.shape({
    id: PropTypes.number,
    latest: PropTypes.bool.isRequired,
    content_view_version: PropTypes.shape({
      version: PropTypes.string,
    }),
    content_view: PropTypes.shape({
      id: PropTypes.number.isRequired,
      latest_version: PropTypes.string,
    }),
  }).isRequired,
};

export default ComponentVersion;

Version data entries

51 entries across 51 versions & 1 rubygems

Version Path
katello-4.16.0 webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentVersion.js
katello-4.15.1 webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentVersion.js
katello-4.16.0.rc2 webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentVersion.js
katello-4.16.0.rc1 webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentVersion.js
katello-4.14.3 webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentVersion.js
katello-4.14.2 webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentVersion.js
katello-4.15.0 webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentVersion.js
katello-4.15.0.rc2 webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentVersion.js
katello-4.15.0.rc1 webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentVersion.js
katello-4.14.1 webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentVersion.js
katello-4.14.0 webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentVersion.js
katello-4.14.0.rc3 webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentVersion.js
katello-4.14.0.rc2 webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentVersion.js
katello-4.14.0.rc1.1 webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentVersion.js
katello-4.14.0.rc1 webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentVersion.js
katello-4.13.1 webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentVersion.js
katello-4.13.0 webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentVersion.js
katello-4.12.1 webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentVersion.js
katello-4.13.0.rc1 webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentVersion.js
katello-4.12.0 webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentVersion.js