contextSummaryGeneric.tsx 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  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 {Event} from 'sentry/types';
  7. import {defined} from 'sentry/utils';
  8. import ContextSummaryNoSummary from './contextSummaryNoSummary';
  9. import generateClassName from './generateClassName';
  10. import Item from './item';
  11. type Props = {
  12. data: Data;
  13. meta: NonNullable<Event['_meta']>[keyof Event['_meta']];
  14. unknownTitle: string;
  15. omitUnknownVersion?: boolean;
  16. };
  17. type Data = {
  18. name: string;
  19. version?: string;
  20. };
  21. export function ContextSummaryGeneric({
  22. data,
  23. unknownTitle,
  24. omitUnknownVersion = false,
  25. meta,
  26. }: Props) {
  27. if (Object.keys(data).length === 0) {
  28. return <ContextSummaryNoSummary title={unknownTitle} />;
  29. }
  30. return (
  31. <Item
  32. className={generateClassName(data.name, data.version)}
  33. icon={<span className="context-item-icon" />}
  34. >
  35. <h3>
  36. <AnnotatedText value={data.name} meta={meta.name?.['']} />
  37. </h3>
  38. {(data.version || !omitUnknownVersion) && (
  39. <TextOverflow isParagraph>
  40. <Subject>{t('Version:')}</Subject>
  41. {!defined(data.version) ? (
  42. t('Unknown')
  43. ) : (
  44. <AnnotatedText value={data.version} meta={meta.version?.['']} />
  45. )}
  46. </TextOverflow>
  47. )}
  48. </Item>
  49. );
  50. }
  51. const Subject = styled('strong')`
  52. margin-right: ${space(0.5)};
  53. `;