import {useTheme} from '@emotion/react'; import styled from '@emotion/styled'; import type {Location} from 'history'; import {noFilter} from 'sentry/components/events/interfaces/spans/filter'; import {ActualMinimap} from 'sentry/components/events/interfaces/spans/header'; import {useSpanWaterfallModelFromTransaction} from 'sentry/components/events/interfaces/spans/useSpanWaterfallModelFromTransaction'; import OpsBreakdown from 'sentry/components/events/opsBreakdown'; import LoadingIndicator from 'sentry/components/loadingIndicator'; import {space} from 'sentry/styles/space'; type Props = { transaction: string; aggregateSpansLocation?: Location; }; export function MiniAggregateWaterfall({transaction}: Props) { const theme = useTheme(); // Pageload transactions don't seem to store http.method, so don't include one here const {waterfallModel, event, isLoading} = useSpanWaterfallModelFromTransaction(transaction); if (isLoading) { return ; } const minimap = ( ); const opsBreakdown = ( ); return ( {minimap} {opsBreakdown} ); } const MinimapContainer = styled('div')` position: relative; height: 120px; `; // Not ideal, but OpsBreakdown has margins in nested components. Easiest way to update them for now. const BreakdownContainer = styled('div')` > div { margin: 0; } margin: ${space(2)} 0; `;