'use client' import { useState, useEffect } from 'react' 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' interface ChartData { label: string value: number color?: string } export function AnalyticsDashboard() { const [userGrowthData, setUserGrowthData] = useState([]) const [membershipData, setMembershipData] = useState([]) const [revenueData, setRevenueData] = useState([]) const [loading, setLoading] = useState(true) useEffect(() => { fetchAnalyticsData() }, []) const fetchAnalyticsData = async () => { setLoading(true) try { // Mock data for demonstration - replace with real API calls const mockUserGrowth = [ { label: 'Jan', value: 45 }, { label: 'Feb', value: 52 }, { label: 'Mar', value: 61 }, { label: 'Apr', value: 58 }, { label: 'May', value: 67 }, { label: 'Jun', value: 74 }, ] const mockMembershipData = [ { label: 'Basic', value: 45, color: '#6b7280' }, { label: 'Premium', value: 28, color: '#3b82f6' }, { label: 'VIP', value: 12, color: '#f59e0b' }, ] const mockRevenueData = [ { label: 'Jan', value: 12500, color: '#10b981' }, { label: 'Feb', value: 14200, color: '#10b981' }, { label: 'Mar', value: 16800, color: '#10b981' }, { label: 'Apr', value: 15900, color: '#10b981' }, { label: 'May', value: 18200, color: '#10b981' }, { label: 'Jun', value: 19400, color: '#10b981' }, ] setUserGrowthData(mockUserGrowth) setMembershipData(mockMembershipData) setRevenueData(mockRevenueData) } catch (error) { console.error('Failed to fetch analytics data:', error) } finally { setLoading(false) } } 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 (loading) { 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

) }