traceView.tsx 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import {getTraceContext} from 'app/components/events/interfaces/spans/utils';
  2. import {IconWarning} from 'app/icons';
  3. import {t} from 'app/locale';
  4. import {Event} from 'app/types/event';
  5. import EmptyMessage from 'app/views/settings/components/emptyMessage';
  6. import SpanTree from './spanTree';
  7. import {isTransactionEvent} from './utils';
  8. type Props = {
  9. baselineEvent: Event;
  10. regressionEvent: Event;
  11. };
  12. const TraceView = (props: Props) => {
  13. const {baselineEvent, regressionEvent} = props;
  14. if (!isTransactionEvent(baselineEvent) || !isTransactionEvent(regressionEvent)) {
  15. return (
  16. <EmptyMessage>
  17. <IconWarning color="gray300" size="lg" />
  18. <p>{t('One of the given events is not a transaction.')}</p>
  19. </EmptyMessage>
  20. );
  21. }
  22. const baselineTraceContext = getTraceContext(baselineEvent);
  23. const regressionTraceContext = getTraceContext(regressionEvent);
  24. if (!baselineTraceContext || !regressionTraceContext) {
  25. return (
  26. <EmptyMessage>
  27. <IconWarning color="gray300" size="lg" />
  28. <p>{t('There is no trace found in either of the given transactions.')}</p>
  29. </EmptyMessage>
  30. );
  31. }
  32. return <SpanTree baselineEvent={baselineEvent} regressionEvent={regressionEvent} />;
  33. };
  34. export default TraceView;