import React, { useMemo } from 'react'; import { LineChart, Line, XAxis, YAxis, CartesianGrid, Tooltip, Legend, ResponsiveContainer, } from 'recharts'; import { PopulationDataPoint } from '../../types.ts'; import { useAppContext } from '../../context/AppContext.tsx'; import { formatNumber, createYAxisFormatter } from '../../utils/formatters.ts'; interface KandangPopulationData { name: string; data: PopulationDataPoint[]; color: string; } interface PopulationTrendChartProps { data: PopulationDataPoint[]; perKandangData?: KandangPopulationData[]; } const PopulationTrendChart: React.FC = ({ data, perKandangData }) => { const { apiMode: _apiMode } = useAppContext(); // Merge per-kandang data into chart data const mergedData = useMemo(() => { if (!perKandangData || perKandangData.length === 0) return data; return data.map((point, index) => { const merged: any = { ...point }; perKandangData.forEach((kandang) => { if (kandang.data[index]) { merged[kandang.name] = kandang.data[index].population; } }); return merged; }); }, [data, perKandangData]); // Show empty state if no data if (data.length === 0) { return (

Tren Populasi

Tidak ada data

Belum ada data populasi yang tersedia

); } const hasPerKandang = perKandangData && perKandangData.length > 0; return (

Tren Populasi

[ formatNumber(value), name === 'population' ? 'Total' : name, ]} /> {hasPerKandang && } {hasPerKandang && perKandangData!.map((kandang) => ( ))}
); }; export default PopulationTrendChart;