Sha256: fc0895d430f40485ce073a8e5b15af47fc766df85aa8303f2d74e4b76efc8543

Contents?: true

Size: 1.14 KB

Versions: 4

Compression:

Stored size: 1.14 KB

Contents

import React from 'react';
import EllipsisWithTooltip from 'react-ellipsis-with-tooltip';
import PropTypes from 'prop-types';
import { translate as __ } from 'foremanReact/common/I18n';

import InfoItem from './InfoItem';
import { itemIteratorId } from './helpers';

const StringInfoItem = ({
  template,
  attr,
  tooltipText,
  translate,
  mapAttr,
  elipsed,
}) => {
  const inner = (
    <span>
      {translate ? __(mapAttr(template, attr)) : mapAttr(template, attr)}
    </span>
  );
  const innerContent = elipsed ? (
    <EllipsisWithTooltip placement="top">{inner}</EllipsisWithTooltip>
  ) : (
    inner
  );

  return (
    <InfoItem itemId={itemIteratorId(template, attr)} tooltipText={tooltipText}>
      {innerContent}
    </InfoItem>
  );
};

StringInfoItem.propTypes = {
  template: PropTypes.object.isRequired,
  attr: PropTypes.string.isRequired,
  tooltipText: PropTypes.string,
  translate: PropTypes.bool,
  mapAttr: PropTypes.func,
  elipsed: PropTypes.bool,
};

StringInfoItem.defaultProps = {
  translate: false,
  mapAttr: (template, attr) => template[attr],
  elipsed: false,
  tooltipText: undefined,
};

export default StringInfoItem;

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
foreman_templates-9.3.3 webpack/components/TemplateSyncResult/components/SyncedTemplate/StringInfoItem.js
foreman_templates-9.3.2 webpack/components/TemplateSyncResult/components/SyncedTemplate/StringInfoItem.js
foreman_templates-9.3.1 webpack/components/TemplateSyncResult/components/SyncedTemplate/StringInfoItem.js
foreman_templates-9.3.0 webpack/components/TemplateSyncResult/components/SyncedTemplate/StringInfoItem.js