fix: resolve ReferenceError by moving aggregateWoc after filteredRows initialization

This commit is contained in:
Christian Vidal Wolf
2026-04-17 12:37:59 +02:00
parent 38f16aac89
commit 59c4b3a204
+20 -19
View File
@@ -559,25 +559,6 @@ const WeeklyGrid: React.FC<WeeklyGridProps & { top50Mode: 'eu' | 'uk' }> = ({
return totals; return totals;
}, [rows, weeks]); }, [rows, weeks]);
const aggregateWoc = useMemo(() => {
if (!vendorStockMap || !velocityMap || filteredRows.length === 0) return null;
let totalStock = 0;
let totalVelocity = 0;
filteredRows.forEach(row => {
const asin = row.asin.trim().toUpperCase();
const stockData = vendorStockMap.get(asin);
if (stockData) {
totalStock += (top50Mode === 'uk' ? stockData.uk : stockData.eu);
}
totalVelocity += (velocityMap.get(asin) || 0);
});
if (totalVelocity > 0) return totalStock / totalVelocity;
if (totalStock > 0) return 999;
return 0;
}, [filteredRows, vendorStockMap, velocityMap, top50Mode]);
// 1. Filter by search term, Top 50, and growth (using debounced value) // 1. Filter by search term, Top 50, and growth (using debounced value)
const filteredRows = useMemo(() => { const filteredRows = useMemo(() => {
@@ -727,6 +708,26 @@ const WeeklyGrid: React.FC<WeeklyGridProps & { top50Mode: 'eu' | 'uk' }> = ({
return result; return result;
}, [rows, debouncedSearch, showOnlyTop50, showActiveExperiments, experimentMap, top50Ranking, growthFilterMode, growthThreshold, sortConfig, weeks, top50Mode, wocFilter, velocityMap, vendorStockMap, numericFilters, columnFilters]); }, [rows, debouncedSearch, showOnlyTop50, showActiveExperiments, experimentMap, top50Ranking, growthFilterMode, growthThreshold, sortConfig, weeks, top50Mode, wocFilter, velocityMap, vendorStockMap, numericFilters, columnFilters]);
const aggregateWoc = useMemo(() => {
if (!vendorStockMap || !velocityMap || filteredRows.length === 0) return null;
let totalStock = 0;
let totalVelocity = 0;
filteredRows.forEach(row => {
const asin = row.asin.trim().toUpperCase();
const stockData = vendorStockMap.get(asin);
if (stockData) {
totalStock += (top50Mode === 'uk' ? stockData.uk : stockData.eu);
}
totalVelocity += (velocityMap.get(asin) || 0);
});
if (totalVelocity > 0) return totalStock / totalVelocity;
if (totalStock > 0) return 999;
return 0;
}, [filteredRows, vendorStockMap, velocityMap, top50Mode]);
// 2. Sort results // 2. Sort results
const sortedRows = useMemo(() => { const sortedRows = useMemo(() => {
if (!sortConfig || filteredRows.length === 0) return filteredRows; if (!sortConfig || filteredRows.length === 0) return filteredRows;