import { useDateRange, useMessages } from '@/components/hooks'; import { MetricCard } from '@/components/metrics/MetricCard'; import { MetricsBar } from '@/components/metrics/MetricsBar'; import { formatLongNumber } from '@/lib/format'; import { useWebsiteStatsQuery } from '@/components/hooks/queries/useWebsiteStatsQuery'; import { LoadingPanel } from '@/components/common/LoadingPanel'; export function PixelMetricsBar({ pixelId, }: { pixelId: string; showChange?: boolean; compareMode?: boolean; }) { const { isAllTime } = useDateRange(); const { formatMessage, labels } = useMessages(); const { data, isLoading, isFetching, error } = useWebsiteStatsQuery(pixelId); const { pageviews, visitors, visits, comparison } = data || {}; const metrics = data ? [ { value: visitors, label: formatMessage(labels.visitors), change: visitors - comparison.visitors, formatValue: formatLongNumber, }, { value: visits, label: formatMessage(labels.visits), change: visits - comparison.visits, formatValue: formatLongNumber, }, { value: pageviews, label: formatMessage(labels.views), change: pageviews - comparison.pageviews, formatValue: formatLongNumber, }, ] : null; return ( {metrics?.map(({ label, value, prev, change, formatValue, reverseColors }: any) => { return ( ); })} ); }