Implement Dashboard-specific YTD filtering

This commit is contained in:
christian.vidal
2026-01-29 20:31:44 +01:00
parent 7a2b47af21
commit db2c67060b
+15 -1
View File
@@ -525,6 +525,20 @@ const App: React.FC = () => {
});
}, [combinedAdsData, gridContext.maxWeek]);
// Derived Data for Dashboard (YTD Filtered - Isolated)
// Dashboard needs aggregated data respecting the max week limit of current year.
const ytdFilteredData = useMemo(() => {
return filteredData.filter(r => r.week <= gridContext.maxWeek);
}, [filteredData, gridContext.maxWeek]);
const ytdFilteredAdsData = useMemo(() => {
return filteredAdsData.filter(r => r.week <= gridContext.maxWeek);
}, [filteredAdsData, gridContext.maxWeek]);
const ytdAggregatedData = useMemo(() => {
return aggregateData(ytdFilteredData);
}, [ytdFilteredData]);
// Derived Data for Views
const years = useMemo(() => getUniqueValues(rawData, 'year').sort().reverse(), [rawData]);
@@ -701,7 +715,7 @@ const App: React.FC = () => {
<FilterBar filters={filters} onFilterChange={handleFilterChange} options={filterOptions} />
<div className="mt-6">
<div className={view === 'dashboard' ? '' : 'hidden'}>
<Dashboard data={aggregatedData} filterState={filters} adsData={filteredAdsData} stockMap={stockMap} />
<Dashboard data={ytdAggregatedData} filterState={filters} adsData={ytdFilteredAdsData} stockMap={stockMap} />
</div>
<Suspense fallback={<LoadingSpinner />}>