import { OverviewMetricCard } from '@/components/overview/overview-metric-card'; import type { IProfileMetrics } from '@openpanel/db'; type Props = { data: IProfileMetrics; }; const PROFILE_METRICS = [ { title: 'Total Events', key: 'totalEvents', unit: '', inverted: false, hideOnZero: false, }, { title: 'Sessions', key: 'sessions', unit: '', inverted: false, hideOnZero: false, }, { title: 'Page Views', key: 'screenViews', unit: '', inverted: false, hideOnZero: false, }, { title: 'Avg Events/Session', key: 'avgEventsPerSession', unit: '', inverted: false, hideOnZero: false, }, { title: 'Bounce Rate', key: 'bounceRate', unit: '%', inverted: true, hideOnZero: false, }, { title: 'Session Duration (Avg)', key: 'durationAvg', unit: 'min', inverted: false, hideOnZero: false, }, { title: 'Session Duration (P90)', key: 'durationP90', unit: 'min', inverted: false, hideOnZero: false, }, { title: 'First seen', key: 'firstSeen', unit: 'timeAgo', inverted: false, hideOnZero: false, }, { title: 'Last seen', key: 'lastSeen', unit: 'timeAgo', inverted: false, hideOnZero: false, }, { title: 'Days Active', key: 'uniqueDaysActive', unit: '', inverted: false, hideOnZero: false, }, { title: 'Conversion Events', key: 'conversionEvents', unit: '', inverted: false, hideOnZero: false, }, { title: 'Avg Time Between Sessions (h)', key: 'avgTimeBetweenSessions', unit: 'min', inverted: false, hideOnZero: false, }, { title: 'Revenue', key: 'revenue', unit: 'currency', inverted: false, hideOnZero: true, }, ] as const; export const ProfileMetrics = ({ data }: Props) => { return (
{PROFILE_METRICS.filter((metric) => { if (metric.hideOnZero && data[metric.key] === 0) { return false; } return true; }).map((metric) => ( ))}
); };