import type {
TraceError,
TracePerformanceIssue,
} from 'sentry/utils/performance/quickTrace/types';
import type {TraceTree} from './traceModels/traceTree';
interface EventTypeIconProps {
event: TracePerformanceIssue | TraceError | TraceTree.Profile;
}
function EventTypeIcon(props: EventTypeIconProps) {
if ('profile_id' in props.event || 'profiler_id' in props.event) {
return ;
}
switch (props.event.level) {
case 'error':
case 'fatal': {
return ;
}
default: {
return ;
}
}
}
export const TraceIcons = {
Icon: EventTypeIcon,
Chevron,
Fire,
Profile,
Warning,
};
// These are the icons used in the TraceDetails component - their SVGs path values have been copied
// and removed from the emotion wrapper which is parsing and compiling unnecessary CSS as the
// components rerended, which causes frame drops and performance issues that result in white
// row flashes when scrolling.
function Chevron(props: {direction: 'up' | 'down' | 'left'}) {
return (
);
}
function Fire() {
return (
);
}
function Profile() {
return (
);
}
function Warning() {
return (
);
}