"use client"; import { UserGrowthChart } from "@/components/charts/UserGrowthChart"; import { MembershipDistributionChart } from "@/components/charts/MembershipDistributionChart"; import { RevenueChart } from "@/components/charts/RevenueChart"; import { Card, CardHeader, CardContent } from "@/components/ui/card"; import { useAnalytics } from "@/hooks/use-api"; interface AnalyticsDashboardProps { gymId?: string; } export function AnalyticsDashboard({ gymId }: AnalyticsDashboardProps) { const { data: analytics, isLoading } = useAnalytics(6, gymId); const userGrowthData = analytics?.userGrowth ?? []; const membershipData = analytics?.membershipDistribution ?? []; const revenueData = analytics?.revenue ?? []; const totalUsers = userGrowthData.length > 0 ? userGrowthData[userGrowthData.length - 1].value : 0; const totalRevenue = revenueData.reduce((sum, item) => sum + item.value, 0); const activeMembers = membershipData.reduce( (sum, item) => sum + item.value, 0, ); if (isLoading) { return (
Loading analytics...
); } return (

Analytics Dashboard

{/* Key Metrics */}
{totalUsers}
Total Users
${totalRevenue.toLocaleString()}
Total Revenue
{activeMembers}
Active Members
{/* Charts */}

User Growth

Membership Distribution

Monthly Revenue

({ category: item.label, value: item.value, color: item.color, }))} />
); }