/** * Analytics Dashboard - Main Page * Comprehensive overview of all analytics data */ import { useState, useEffect } from 'react'; import Link from 'next/link'; import { KPICard, DateRangePicker, LineChart, BarChart, PieChart, } from '../../components/analytics'; import { TimeRange, AnalyticsOverview, PlantAnalytics, TransportAnalytics } from '../../lib/analytics/types'; export default function AnalyticsDashboard() { const [timeRange, setTimeRange] = useState('30d'); const [loading, setLoading] = useState(true); const [overview, setOverview] = useState(null); const [plantData, setPlantData] = useState(null); const [transportData, setTransportData] = useState(null); useEffect(() => { fetchData(); }, [timeRange]); const fetchData = async () => { setLoading(true); try { const [overviewRes, plantRes, transportRes] = await Promise.all([ fetch(`/api/analytics/overview?timeRange=${timeRange}`), fetch(`/api/analytics/plants?timeRange=${timeRange}`), fetch(`/api/analytics/transport?timeRange=${timeRange}`), ]); const overviewData = await overviewRes.json(); const plantDataRes = await plantRes.json(); const transportDataRes = await transportRes.json(); setOverview(overviewData.data); setPlantData(plantDataRes.data); setTransportData(transportDataRes.data); } catch (error) { console.error('Failed to fetch analytics data:', error); } finally { setLoading(false); } }; const handleExport = (format: 'csv' | 'json') => { window.open(`/api/analytics/export?format=${format}&timeRange=${timeRange}`, '_blank'); }; return (
{/* Header */}

Analytics Dashboard

Comprehensive insights into your LocalGreenChain network

{/* Time Range Selector */}
{/* Navigation Tabs */} {/* KPI Cards */}
{/* Charts Row */}
{/* Plant Registrations Trend */} {plantData?.registrationsTrend && ( )} {/* Species Distribution */} {plantData?.plantsBySpecies && ( )}
{/* Transport Charts */}
{/* Transport Methods */} {transportData?.eventsByMethod && ( )} {/* Carbon Trend */} {transportData?.carbonTrend && ( )}
{/* Summary Stats */}

Network Summary

{overview?.plantsRegisteredToday || 0}

Registered Today

{overview?.plantsRegisteredThisWeek || 0}

This Week

{overview?.plantsRegisteredThisMonth || 0}

This Month

{overview?.growthRate?.toFixed(1) || 0}%

Growth Rate

); }