index.tsx 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import Alert from 'sentry/components/alert';
  2. import EventDataSection from 'sentry/components/events/eventDataSection';
  3. import {t, tct} from 'sentry/locale';
  4. import {Event} from 'sentry/types/event';
  5. import getSdkUpdateSuggestion from 'sentry/utils/getSdkUpdateSuggestion';
  6. type Props = {
  7. event: Omit<Event, 'sdkUpdates'> & {
  8. sdkUpdates: NonNullable<Event['sdkUpdates']>;
  9. };
  10. };
  11. const SdkUpdates = ({event}: Props) => {
  12. const {sdkUpdates} = event;
  13. const eventDataSectinContent = sdkUpdates
  14. .map((sdkUpdate, index) => {
  15. const suggestion = getSdkUpdateSuggestion({suggestion: sdkUpdate, sdk: event.sdk});
  16. if (!suggestion) {
  17. return null;
  18. }
  19. return (
  20. <Alert key={index} type="info" showIcon>
  21. {tct('We recommend you [suggestion] ', {suggestion})}
  22. {sdkUpdate.type === 'updateSdk' &&
  23. t('(All sentry packages should be updated and their versions should match)')}
  24. </Alert>
  25. );
  26. })
  27. .filter(alert => !!alert);
  28. if (!eventDataSectinContent.length) {
  29. return null;
  30. }
  31. return (
  32. <EventDataSection title={null} type="sdk-updates">
  33. {eventDataSectinContent}
  34. </EventDataSection>
  35. );
  36. };
  37. export default SdkUpdates;