From 11142d401df0b2788499020f05861f4bcc7ba29d Mon Sep 17 00:00:00 2001 From: Dan Kotov Date: Sun, 11 Jan 2026 16:38:48 -0500 Subject: [PATCH] fix: handle new getSessionMetrics format in WorldMap WorldMap now correctly extracts data and total from the new { data, total } response format for accurate percentage calculation. --- src/components/metrics/WorldMap.tsx | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/components/metrics/WorldMap.tsx b/src/components/metrics/WorldMap.tsx index 3c8fadb8..1900adc5 100644 --- a/src/components/metrics/WorldMap.tsx +++ b/src/components/metrics/WorldMap.tsx @@ -32,10 +32,16 @@ export function WorldMap({ websiteId, data, ...props }: WorldMapProps) { type: 'country', }); - const metrics = useMemo( - () => (data || mapData ? percentFilter((data || mapData) as any[]) : []), - [data, mapData], - ); + const metrics = useMemo(() => { + const source = data || mapData; + if (!source) return []; + + // Handle both old format (array) and new format ({ data, total }) + const items = Array.isArray(source) ? source : source.data; + const total = Array.isArray(source) ? undefined : source.total; + + return percentFilter(items, total); + }, [data, mapData]); const getFillColor = (code: string) => { if (code === 'AQ') return;