import type {Location} from 'history'; import type {Organization} from 'sentry/types'; import type {VirtualizedViewManager} from 'sentry/views/performance/newTraceDetails/virtualizedViewManager'; import { isMissingInstrumentationNode, isParentAutogroupedNode, isSiblingAutogroupedNode, isSpanNode, isTraceErrorNode, isTransactionNode, } from '../../guards'; import type {TraceTree, TraceTreeNode} from '../../traceTree'; import {ErrorNodeDetails} from '../details/error'; import {MissingInstrumentationNodeDetails} from '../details/missingInstrumentation'; import {ParentAutogroupNodeDetails} from '../details/parentAutogroup'; import {SiblingAutogroupNodeDetails} from '../details/siblingAutogroup'; import {SpanNodeDetails} from '../details/span'; import {TransactionNodeDetails} from '../details/transaction'; export default function NodeDetail({ node, organization, location, manager, scrollToNode, onParentClick, }: { location: Location; manager: VirtualizedViewManager; node: TraceTreeNode; onParentClick: (node: TraceTreeNode) => void; organization: Organization; scrollToNode: (node: TraceTreeNode) => void; }) { if (isTransactionNode(node)) { return ( ); } if (isSpanNode(node)) { return ( ); } if (isTraceErrorNode(node)) { return ( ); } if (isParentAutogroupedNode(node)) { return ( ); } if (isSiblingAutogroupedNode(node)) { return ( ); } if (isMissingInstrumentationNode(node)) { return ( ); } throw new Error('Unknown clicked node type'); }