packageData.tsx 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import ClippedBox from 'sentry/components/clippedBox';
  2. import ErrorBoundary from 'sentry/components/errorBoundary';
  3. import EventDataSection from 'sentry/components/events/eventDataSection';
  4. import KeyValueList from 'sentry/components/events/interfaces/keyValueList';
  5. import {t} from 'sentry/locale';
  6. import {Event} from 'sentry/types/event';
  7. type Props = {
  8. event: Event;
  9. };
  10. export function EventPackageData({event}: Props) {
  11. let longKeys: boolean, title: string;
  12. const packages = Object.entries(event.packages || {}).map(([key, value]) => ({
  13. key,
  14. value,
  15. subject: key,
  16. meta: event._meta?.packages?.[key]?.[''],
  17. }));
  18. switch (event.platform) {
  19. case 'csharp':
  20. longKeys = true;
  21. title = t('Assemblies');
  22. break;
  23. case 'java':
  24. longKeys = true;
  25. title = t('Dependencies');
  26. break;
  27. default:
  28. longKeys = false;
  29. title = t('Packages');
  30. }
  31. return (
  32. <EventDataSection type="packages" title={title}>
  33. <ClippedBox>
  34. <ErrorBoundary mini>
  35. <KeyValueList data={packages} longKeys={longKeys} />
  36. </ErrorBoundary>
  37. </ClippedBox>
  38. </EventDataSection>
  39. );
  40. }