diff --git a/static/app/components/replays/breadcrumbs/utils.tsx b/static/app/components/replays/breadcrumbs/utils.tsx
index fc4f7d6d769d9a..e6b6e54a7d6327 100644
--- a/static/app/components/replays/breadcrumbs/utils.tsx
+++ b/static/app/components/replays/breadcrumbs/utils.tsx
@@ -1,14 +1,30 @@
+import {Tooltip} from 'sentry/components/tooltip';
+import {IconWarning} from 'sentry/icons';
+import {t} from 'sentry/locale';
import {BreadcrumbType, Crumb} from 'sentry/types/breadcrumbs';
/**
* Generate breadcrumb descriptions based on type
*/
-export function getDescription(crumb: Crumb, startTimestampMs?: number) {
+export function getDescription(crumb: Crumb) {
if (typeof crumb.data === 'object' && crumb.data !== null && 'action' in crumb.data) {
switch (crumb.data.action) {
case 'largest-contentful-paint':
- if (crumb.timestamp && startTimestampMs) {
- return `${new Date(crumb.timestamp).getTime() - startTimestampMs}ms`;
+ if (crumb.data?.value !== undefined) {
+ return `${Math.round(crumb.data.value)}ms`;
+ }
+ if (crumb.data?.duration !== undefined) {
+ // this means user is using an old SDK where LCP values are not
+ // always correct. Prompt them to upgrade
+ return (
+
+
+
+ );
}
break;
default:
@@ -50,6 +66,6 @@ export function getTitle(crumb: Crumb) {
/**
* Generate breadcrumb title + descriptions
*/
-export function getDetails(crumb: Crumb, startTimestampMs?: number) {
- return {title: getTitle(crumb), description: getDescription(crumb, startTimestampMs)};
+export function getDetails(crumb: Crumb) {
+ return {title: getTitle(crumb), description: getDescription(crumb)};
}
diff --git a/static/app/views/replays/detail/breadcrumbs/breadcrumbItem.tsx b/static/app/views/replays/detail/breadcrumbs/breadcrumbItem.tsx
index 07d385a74f389d..f7f4881182bbc6 100644
--- a/static/app/views/replays/detail/breadcrumbs/breadcrumbItem.tsx
+++ b/static/app/views/replays/detail/breadcrumbs/breadcrumbItem.tsx
@@ -4,6 +4,7 @@ import styled from '@emotion/styled';
import BreadcrumbIcon from 'sentry/components/events/interfaces/breadcrumbs/breadcrumb/type/icon';
import {PanelItem} from 'sentry/components/panels';
import {getDetails} from 'sentry/components/replays/breadcrumbs/utils';
+import {Tooltip} from 'sentry/components/tooltip';
import {SVGIconProps} from 'sentry/icons/svgIcon';
import {space} from 'sentry/styles/space';
import type {Crumb} from 'sentry/types/breadcrumbs';
@@ -32,7 +33,7 @@ function BreadcrumbItem({
onMouseLeave,
onClick,
}: Props) {
- const {title, description} = getDetails(crumb, startTimestampMs);
+ const {title, description} = getDetails(crumb);
const handleMouseEnter = useCallback(
(e: React.MouseEvent) => onMouseEnter && onMouseEnter(crumb, e),
@@ -74,7 +75,9 @@ function BreadcrumbItem({
) : null}
- {description}
+
+ {description}
+
);