'use client' import { useEffect, useState } from 'react' import { LineChart, Line, XAxis, YAxis, Tooltip, Legend, ResponsiveContainer, CartesianGrid } from 'recharts' import { getRegions, getTimeSeries, type TimeSeriesData } from '../../services/temporal.services' const TAX_TYPES = ['tfpnb', 'tfpb', 'th', 'cfe'] as const const YEARS = [2019, 2020, 2021, 2022] as const const COLORS = [ '#8884d8', '#82ca9d', '#ffc658', '#ff7300', '#00C49F', '#0088FE', '#FF8042', '#A4DE6C', '#D0ED57', '#FFBB28', '#FF4444', '#44AAFF', '#AA44FF', '#E91E63', '#4CAF50', '#9C27B0', '#00BCD4', '#FF5722', '#607D8B', '#795548', ] export default function Temporal() { const [taxType, setTaxType] = useState('tfpb') const [startYear, setStartYear] = useState(2019) const [endYear, setEndYear] = useState(2022) const [data, setData] = useState(null) const [loading, setLoading] = useState(false) const [regions, setRegions] = useState([]) const [selectedRegions, setSelectedRegions] = useState([]) useEffect(() => { getRegions().then(r => { setRegions(r) setSelectedRegions(r) }) }, []) const toggleRegion = (region: string) => { setSelectedRegions(prev => (prev.includes(region) ? prev.filter(r => r !== region) : [...prev, region])) } const handleSubmit = async () => { setLoading(true) const result = await getTimeSeries([], taxType, startYear, endYear) setData(result) setLoading(false) } const visibleRegions = data ? Object.keys(data).filter(r => selectedRegions.includes(r)) : [] const chartData = data ? YEARS.filter(y => y >= startYear && y <= endYear).map(year => { const point: Record = { year } for (const region of visibleRegions) { const entry = data[region]?.find(e => e.year === year) if (entry) point[region] = parseFloat(entry.avg_rate) } return point }) : [] return (

Taux d'imposition moyen par region

{regions.length > 0 && (
{regions.map(region => ( ))}
)} {chartData.length > 0 && ( `${v}%`} /> [`${value}%`, name]} /> {visibleRegions.map(region => ( ))} )}
) }