"use client"; import { useState, useEffect } from "react"; import { LineChart, Line, XAxis, YAxis, CartesianGrid, Tooltip, Legend, ResponsiveContainer, BarChart, Bar, ComposedChart, PieChart, Pie, Cell } from 'recharts'; import { useTranslation } from "@/lib/i18n"; import PageContainer from "@/components/ui/PageContainer"; export default function TeamLeadsDashboard() { const { t } = useTranslation(); const [chartData, setChartData] = useState([]); const [summaryData, setSummaryData] = useState(null); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); const [selectedYear, setSelectedYear] = useState(null); useEffect(() => { fetchDashboardData(); }, [selectedYear]); const fetchDashboardData = async () => { try { const params = new URLSearchParams(); if (selectedYear) { params.append('year', selectedYear.toString()); } const url = `/api/dashboard${params.toString() ? '?' + params.toString() : ''}`; const response = await fetch(url); if (!response.ok) { throw new Error('Failed to fetch dashboard data'); } const data = await response.json(); setChartData(data.chartData || []); setSummaryData(data.summary || null); } catch (err) { setError(err.message); } finally { setLoading(false); } }; const currentYear = new Date().getFullYear(); const availableYears = []; for (let year = currentYear; year >= 2023; year--) { availableYears.push(year); } const handleYearChange = (year) => { setSelectedYear(year === 'all' ? null : parseInt(year)); }; const formatCurrency = (value) => { return new Intl.NumberFormat('pl-PL', { style: 'currency', currency: 'PLN', minimumFractionDigits: 0, maximumFractionDigits: 0 }).format(value); }; const CustomTooltip = ({ active, payload, label }) => { if (active && payload && payload.length) { // Find the monthly and cumulative values const monthlyData = payload.find(p => p.dataKey === 'value'); const cumulativeData = payload.find(p => p.dataKey === 'cumulative'); return (
{`${t('teamDashboard.monthLabel')} ${label}`}
{`${t('teamDashboard.monthlyValue')} ${monthlyData ? formatCurrency(monthlyData.value) : t('teamDashboard.na')}`}
{`${t('teamDashboard.cumulative')} ${cumulativeData ? formatCurrency(cumulativeData.value) : t('teamDashboard.na')}`}
{payload[0].payload.fullName}
{payload[0].payload.name}
{`${t('teamDashboard.realised')}: ${formatCurrency(payload[0].payload.realised)}`}
{`${t('teamDashboard.unrealised')}: ${formatCurrency(payload[0].payload.unrealised)}`}
{`${t('teamDashboard.total')}: ${formatCurrency(payload[0].payload.total)}`}