Browse Source

fix(ddm-performance): Metrics summary not present (#64564)

- fixes JAVASCRIPT-2RD9
ArthurKnaus 1 year ago
parent
commit
69be0947e6

+ 1 - 1
static/app/components/events/interfaces/spans/types.tsx

@@ -39,7 +39,7 @@ export interface MetricsSummaryItem {
 }
 
 export interface MetricsSummary {
-  [mri: MRI]: MetricsSummaryItem[];
+  [mri: MRI]: MetricsSummaryItem[] | null;
 }
 
 export type RawSpanType = {

+ 11 - 4
static/app/views/ddm/customMetricsEventData.tsx

@@ -29,8 +29,13 @@ import useOrganization from 'sentry/utils/useOrganization';
 function flattenMetricsSummary(
   metricsSummary: MetricsSummary
 ): {item: MetricsSummaryItem; key: string; mri: MRI}[] {
-  return Object.entries(metricsSummary).flatMap(([mri, items]) =>
-    items.map((item, index) => ({item, mri, key: `${mri}${index}`}))
+  return (
+    Object.entries(metricsSummary) as [
+      keyof MetricsSummary,
+      MetricsSummary[keyof MetricsSummary],
+    ][]
+  ).flatMap(([mri, items]) =>
+    (items || []).map((item, index) => ({item, mri, key: `${mri}${index}`}))
   );
 }
 
@@ -44,11 +49,13 @@ export function CustomMetricsEventData({
   metricsSummary,
   startTimestamp,
 }: {
-  metricsSummary: MetricsSummary;
   startTimestamp: number;
+  metricsSummary?: MetricsSummary;
 }) {
   const organization = useOrganization();
-  const metricsSummaryEntries = flattenMetricsSummary(metricsSummary);
+  const metricsSummaryEntries = metricsSummary
+    ? flattenMetricsSummary(metricsSummary)
+    : [];
   const widgetStart = new Date(startTimestamp * 1000 - HALF_HOUR_IN_MS);
   const widgetEnd = new Date(startTimestamp * 1000 + HALF_HOUR_IN_MS);