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 ( ); }