contextSummaryGeneric.tsx 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import styled from '@emotion/styled';
  2. import {AnnotatedText} from 'sentry/components/events/meta/annotatedText';
  3. import TextOverflow from 'sentry/components/textOverflow';
  4. import {t} from 'sentry/locale';
  5. import {space} from 'sentry/styles/space';
  6. import {defined} from 'sentry/utils';
  7. import ContextSummaryNoSummary from './contextSummaryNoSummary';
  8. import Item from './item';
  9. import {ContextItemProps} from './types';
  10. import {generateIconName} from './utils';
  11. type Data = {
  12. name: string;
  13. version?: string;
  14. };
  15. type Props = ContextItemProps<Data, any>;
  16. export function ContextSummaryGeneric({
  17. data,
  18. unknownTitle,
  19. omitUnknownVersion = false,
  20. meta,
  21. }: Props) {
  22. if (Object.keys(data).length === 0) {
  23. return <ContextSummaryNoSummary title={unknownTitle ?? t('Unknown')} />;
  24. }
  25. return (
  26. <Item icon={generateIconName(data.name, data.version)}>
  27. <h3>
  28. <AnnotatedText value={data.name} meta={meta.name?.['']} />
  29. </h3>
  30. {(data.version || !omitUnknownVersion) && (
  31. <TextOverflow isParagraph>
  32. <Subject>{t('Version:')}</Subject>
  33. {!defined(data.version) ? (
  34. t('Unknown')
  35. ) : (
  36. <AnnotatedText value={data.version} meta={meta.version?.['']} />
  37. )}
  38. </TextOverflow>
  39. )}
  40. </Item>
  41. );
  42. }
  43. const Subject = styled('strong')`
  44. margin-right: ${space(0.5)};
  45. `;