From 519a0f692ace57f1a687581cf9f7c77ab3617f62 Mon Sep 17 00:00:00 2001 From: Giuliano Paschoalino Date: Wed, 21 Jan 2026 14:31:39 -0300 Subject: [PATCH] Enhance Dashboard component: add annual data processing and update state management for consolidated years --- src/pages/dashboard/index.tsx | 43 ++++++++++++++++++++++++++++------- 1 file changed, 35 insertions(+), 8 deletions(-) diff --git a/src/pages/dashboard/index.tsx b/src/pages/dashboard/index.tsx index 89d7dfd..7470b09 100644 --- a/src/pages/dashboard/index.tsx +++ b/src/pages/dashboard/index.tsx @@ -68,7 +68,10 @@ export default function Dashboard({ grossAnualGraph, grossAnualYears, grossMensa const [lastDataBrutaMensalS, setLastDataBrutaMensal] = useState('') const [lastDataBrutaAnualS, setLastDataBrutaAnual] = useState('') const [processedMensalData, setProcessedMensalData] = useState(grossMensalGraph) + const [processedAnualData, setProcessedAnualData] = useState(grossAnualGraph) + const [processedAnualYears, setProcessedAnualYears] = useState(grossAnualYears) const [lastConsolidatedYear, setLastConsolidatedYear] = useState(null) + const [lastConsolidatedYearAnual, setLastConsolidatedYearAnual] = useState(null) const [lastConsolidatedYearIndicator, setLastConsolidatedYearIndicator] = useState(null) const [open, setOpen] = useState(true); @@ -76,7 +79,7 @@ export default function Dashboard({ grossAnualGraph, grossAnualYears, grossMensa const handleClose = () => setOpen(false); useEffect(() => { - // Calculate the last consolidated year + // Calculate the last consolidated year for monthly data const lastYear = getLastConsolidatedYear(grossMensalGraph, true) setLastConsolidatedYear(lastYear) @@ -95,11 +98,35 @@ export default function Dashboard({ grossAnualGraph, grossAnualYears, grossMensa index++ } setLastDataBrutaMensal(`${parseFloat(lastDataMensal).toFixed(3)}`) - index = 0 - while (index < grossAnualGraph.length) { - if (!grossAnualGraph[index].dad_estimado) - lastDataAnual = String(grossAnualGraph[index].economia_acumulada) - index++ + + // Process annual data - limit to last consolidated year + next 6 years + const lastYearAnual = getLastConsolidatedYear(grossAnualGraph, false) + setLastConsolidatedYearAnual(lastYearAnual) + + if (lastYearAnual !== null) { + // Filter to show only last consolidated year and next 6 years (7 years total) + const filteredAnualData = grossAnualGraph.filter((item) => { + const year = parseInt(item.ano) + return year >= lastYearAnual && year <= lastYearAnual + 6 + }) + setProcessedAnualData(filteredAnualData) + setProcessedAnualYears(filteredAnualData.map((value) => value.ano)) + + // Calculate last consolidated annual value from filtered data + index = 0 + while (index < filteredAnualData.length) { + if (!filteredAnualData[index].dad_estimado) + lastDataAnual = String(filteredAnualData[index].economia_acumulada) + index++ + } + } else { + // Fallback if no consolidated year found + index = 0 + while (index < grossAnualGraph.length) { + if (!grossAnualGraph[index].dad_estimado) + lastDataAnual = String(grossAnualGraph[index].economia_acumulada) + index++ + } } setLastDataBrutaAnual(`${parseFloat(lastDataAnual).toFixed(3)}`) }, [grossMensalGraph, grossAnualGraph]) @@ -139,8 +166,8 @@ export default function Dashboard({ grossAnualGraph, grossAnualYears, grossMensa + dataProps={processedAnualData} + label={processedAnualYears} barLabel bruta miniature />