import {Fragment} from 'react'; import Alert from 'sentry/components/alert'; import {Tooltip} from 'sentry/components/tooltip'; import {t, tct} from 'sentry/locale'; import {formatBytesBase2} from 'sentry/utils'; import getDynamicText from 'sentry/utils/getDynamicText'; import {RESOURCE_THROUGHPUT_UNIT} from 'sentry/views/performance/browser/resources'; import ResourceSize from 'sentry/views/performance/browser/resources/shared/resourceSize'; import {DurationCell} from 'sentry/views/starfish/components/tableCells/durationCell'; import {ThroughputCell} from 'sentry/views/starfish/components/tableCells/throughputCell'; import {TimeSpentCell} from 'sentry/views/starfish/components/tableCells/timeSpentCell'; import {DataTitles, getThroughputTitle} from 'sentry/views/starfish/views/spans/types'; import {Block, BlockContainer} from 'sentry/views/starfish/views/spanSummaryPage/block'; type Props = { avgContentLength: number; avgDecodedContentLength: number; avgDuration: number; avgTransferSize: number; spanOp: string; throughput: number; timeSpentPercentage: number; timeSpentTotal: number; }; function ResourceInfo(props: Props) { const { avgContentLength, avgDecodedContentLength, avgDuration, avgTransferSize, throughput, timeSpentPercentage, timeSpentTotal, spanOp, } = props; const tooltips = { avgContentLength: tct( 'On average, this resource is [bytes] when encoded (for example when gzipped).', { bytes: getDynamicText({ value: formatBytesBase2(avgContentLength), fixed: 'xx KiB', }), } ), avgDecodedContentLength: tct('On average, this resource is [bytes] when decoded.', { bytes: getDynamicText({ value: formatBytesBase2(avgDecodedContentLength), fixed: 'xx KiB', }), }), avgTransferSize: tct( 'On average, the total bytes transferred over the network (body + headers) for this resource is [bytes].', { bytes: getDynamicText({ value: formatBytesBase2(avgTransferSize), fixed: 'xx KiB', }), } ), }; const hasNoData = avgContentLength === 0 && avgDecodedContentLength === 0 && avgTransferSize === 0; return ( {hasNoData && ( {t( "We couldn't find any size information for this resource, this is likely because the `timing-allow-origin` header is not set." )} )} ); } export default ResourceInfo;