spanRectangle.tsx 886 B

1234567891011121314151617181920212223242526272829
  1. import {useTheme} from '@emotion/react';
  2. import type {SpanBarType} from 'sentry/components/performance/waterfall/constants';
  3. import {getSpanBarColours} from 'sentry/components/performance/waterfall/constants';
  4. import {RowRectangle} from 'sentry/components/performance/waterfall/rowBar';
  5. import toPercent from 'sentry/utils/number/toPercent';
  6. import type {EnhancedSpan} from './types';
  7. import type {SpanViewBoundsType} from './utils';
  8. export default function SpanRectangle({
  9. bounds,
  10. spanBarType,
  11. }: {
  12. bounds: SpanViewBoundsType;
  13. spanGrouping: EnhancedSpan[];
  14. spanBarType?: SpanBarType;
  15. }) {
  16. const theme = useTheme();
  17. return (
  18. <RowRectangle
  19. style={{
  20. backgroundColor: getSpanBarColours(spanBarType, theme).primary,
  21. left: `min(${toPercent(bounds.left || 0)}, calc(100% - 1px))`,
  22. width: toPercent(bounds.width || 0),
  23. }}
  24. />
  25. );
  26. }