index.tsx 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. import {Organization} from 'sentry/types';
  2. import {BreadcrumbType, RawCrumb} from 'sentry/types/breadcrumbs';
  3. import {Event} from 'sentry/types/event';
  4. import {Default} from './default';
  5. import {Exception} from './exception';
  6. import {Http} from './http';
  7. import {LinkedEvent} from './linkedEvent';
  8. type Props = Pick<React.ComponentProps<typeof LinkedEvent>, 'route' | 'router'> & {
  9. breadcrumb: RawCrumb;
  10. event: Event;
  11. organization: Organization;
  12. searchTerm: string;
  13. meta?: Record<any, any>;
  14. };
  15. export function Data({
  16. breadcrumb,
  17. event,
  18. organization,
  19. searchTerm,
  20. meta,
  21. route,
  22. router,
  23. }: Props) {
  24. const orgSlug = organization.slug;
  25. const linkedEvent =
  26. !!organization.features?.includes('breadcrumb-linked-event') &&
  27. breadcrumb.event_id ? (
  28. <LinkedEvent
  29. orgSlug={orgSlug}
  30. eventId={breadcrumb.event_id}
  31. route={route}
  32. router={router}
  33. />
  34. ) : undefined;
  35. if (breadcrumb.type === BreadcrumbType.HTTP) {
  36. return (
  37. <Http
  38. breadcrumb={breadcrumb}
  39. searchTerm={searchTerm}
  40. linkedEvent={linkedEvent}
  41. meta={meta}
  42. />
  43. );
  44. }
  45. if (
  46. breadcrumb.type === BreadcrumbType.WARNING ||
  47. breadcrumb.type === BreadcrumbType.ERROR
  48. ) {
  49. return (
  50. <Exception
  51. breadcrumb={breadcrumb}
  52. searchTerm={searchTerm}
  53. linkedEvent={linkedEvent}
  54. meta={meta}
  55. />
  56. );
  57. }
  58. return (
  59. <Default
  60. event={event}
  61. orgSlug={orgSlug}
  62. breadcrumb={breadcrumb}
  63. searchTerm={searchTerm}
  64. linkedEvent={linkedEvent}
  65. meta={meta}
  66. />
  67. );
  68. }