import Alert from 'sentry/components/alert';
import ExternalLink from 'sentry/components/links/externalLink';
import {t, tct} from 'sentry/locale';
import {TraceType} from '../traceDetails/newTraceDetailsContent';
type TraceWarningsProps = {
type: TraceType;
};
export default function TraceWarnings({type}: TraceWarningsProps) {
switch (type) {
case TraceType.NO_ROOT:
return (
{t(
'A root transaction is missing. Transactions linked by a dashed line have been orphaned and cannot be directly linked to the root.'
)}
);
case TraceType.BROKEN_SUBTRACES:
return (
{t(
'This trace has broken subtraces. Transactions linked by a dashed line have been orphaned and cannot be directly linked to the root.'
)}
);
case TraceType.MULTIPLE_ROOTS:
return (
{t('Multiple root transactions have been found with this trace ID.')}
);
case TraceType.ONLY_ERRORS:
return (
{tct(
"The good news is we know these errors are related to each other. The bad news is that we can't tell you more than that. If you haven't already, [tracingLink: configure performance monitoring for your SDKs] to learn more about service interactions.",
{
tracingLink: (
),
}
)}
);
case TraceType.ONE_ROOT:
case TraceType.EMPTY_TRACE:
return null;
default:
throw new TypeError('Invalid trace type');
}
}