eventSdk.tsx 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import {t} from 'sentry/locale';
  2. import type {Event} from 'sentry/types/event';
  3. import {isEmptyObject} from 'sentry/utils/object/isEmptyObject';
  4. import {SectionKey} from 'sentry/views/issueDetails/streamline/context';
  5. import {InterimSection} from 'sentry/views/issueDetails/streamline/interimSection';
  6. import KeyValueList from './interfaces/keyValueList';
  7. import {AnnotatedText} from './meta/annotatedText';
  8. type Props = {
  9. meta?: Record<any, any>;
  10. sdk?: Event['sdk'];
  11. };
  12. export function EventSdk({sdk, meta}: Props) {
  13. if (!sdk || isEmptyObject(sdk)) {
  14. return null;
  15. }
  16. return (
  17. <InterimSection title={t('SDK')} type={SectionKey.SDK} initialCollapse>
  18. <KeyValueList
  19. data={[
  20. {
  21. key: 'name',
  22. subject: t('Name'),
  23. value: (
  24. <pre className="val-string">
  25. {meta?.name?.[''] ? (
  26. <AnnotatedText value={sdk.name} meta={meta?.name?.['']} />
  27. ) : (
  28. sdk.name
  29. )}
  30. </pre>
  31. ),
  32. },
  33. {
  34. key: 'version',
  35. subject: t('Version'),
  36. value: (
  37. <pre className="val-string">
  38. {meta?.version?.[''] ? (
  39. <AnnotatedText value={sdk.version} meta={meta?.version?.['']} />
  40. ) : (
  41. sdk.version
  42. )}
  43. </pre>
  44. ),
  45. },
  46. ]}
  47. />
  48. </InterimSection>
  49. );
  50. }