From 59c4b3a2046d03717bb2a0abd1b3ad456e36837e Mon Sep 17 00:00:00 2001 From: Christian Vidal Wolf Date: Fri, 17 Apr 2026 12:37:59 +0200 Subject: [PATCH] fix: resolve ReferenceError by moving aggregateWoc after filteredRows initialization --- components/WeeklyGrid.tsx | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/components/WeeklyGrid.tsx b/components/WeeklyGrid.tsx index 9f16716..efe14b6 100644 --- a/components/WeeklyGrid.tsx +++ b/components/WeeklyGrid.tsx @@ -559,25 +559,6 @@ const WeeklyGrid: React.FC = ({ return totals; }, [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) const filteredRows = useMemo(() => { @@ -727,6 +708,26 @@ const WeeklyGrid: React.FC = ({ return result; }, [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 const sortedRows = useMemo(() => { if (!sortConfig || filteredRows.length === 0) return filteredRows;