From d5bcbeda1aa29bd2547e00d8fc93d0764fdbfebd Mon Sep 17 00:00:00 2001 From: Christian Vidal Wolf Date: Mon, 9 Feb 2026 12:05:03 +0100 Subject: [PATCH] Fix GRID tab empty table regression by correcting filter logic and prop passing --- App.tsx | 1 + components/DataGrid.tsx | 21 ++++++--------------- services/dataProcessor.ts | 2 +- 3 files changed, 8 insertions(+), 16 deletions(-) diff --git a/App.tsx b/App.tsx index 4656389..03bfa84 100644 --- a/App.tsx +++ b/App.tsx @@ -761,6 +761,7 @@ const App: React.FC = () => {
0} adsData={filteredAdsData} stockMap={stockMap} diff --git a/components/DataGrid.tsx b/components/DataGrid.tsx index 2c48144..114a41f 100644 --- a/components/DataGrid.tsx +++ b/components/DataGrid.tsx @@ -2,7 +2,7 @@ import React, { useState, useMemo, useEffect, useRef } from 'react'; import { LineChart, Line, XAxis, YAxis, CartesianGrid, Tooltip, Legend, ResponsiveContainer } from 'recharts'; -import { SalesRecord, PivotRow, AdsRecord, CombinedKPIs, ColumnFilterCondition } from '../types'; +import { SalesRecord, PivotRow, AdsRecord, CombinedKPIs, ColumnFilterCondition, FilterState } from '../types'; import { pivotSalesData, generateXLSX, aggregateForTimeSeries, aggregateForComparisonTimeSeries, applyPanEUGrouping, filterData } from '../services/dataProcessor'; import { DownloadIcon, FunnelIcon, CloseIcon, ChartIcon, TrendingIcon } from './Icons'; import { StockBadge } from './StockBadge'; @@ -13,6 +13,7 @@ import { ExcelFilter } from './ExcelFilter'; interface DataGridProps { data: SalesRecord[] | CombinedKPIs[]; + filters: FilterState; hasCustomerFilter: boolean; adsData?: AdsRecord[]; stockMap?: Map; @@ -242,7 +243,7 @@ const ExpandableChartCard: React.FC<{ title: string; children: React.ReactNode; }; -const DataGrid: React.FC = ({ data, hasCustomerFilter, adsData, stockMap, vendorStockMap, top50Ranking, top50Mode, velocityMap, buyBoxLostMap, defaultSort }) => { +const DataGrid: React.FC = ({ data, filters, hasCustomerFilter, adsData, stockMap, vendorStockMap, top50Ranking, top50Mode, velocityMap, buyBoxLostMap, defaultSort }) => { const [currentPage, setCurrentPage] = useState(1); const [searchTerm, setSearchTerm] = useState(''); const [sortConfig, setSortConfig] = useState(defaultSort || { key: null, direction: 'desc' }); @@ -323,18 +324,8 @@ const DataGrid: React.FC = ({ data, hasCustomerFilter, adsData, s // Apply our comprehensive filters (includes Column Filters now) const filterState: any = { - customer: [], - year: [], - month: [], - line: [], - asin: [], - sku: [], - title: [], - week: [], - stock: [], - vendorStock: [], - woc: [], - bulkSearch: searchTerm, + ...filters, + bulkSearch: searchTerm, // searchTerm from the DataGrid's local search input columnFilters }; const filteredFlatData = filterData(processedData, filterState, stockMap, vendorStockMap, top50Mode); @@ -342,7 +333,7 @@ const DataGrid: React.FC = ({ data, hasCustomerFilter, adsData, s // pivotSalesData now handles ads aggregation correctly because it receives CombinedKPIs const { rows } = pivotSalesData(filteredFlatData, effectiveDimensions); return rows; - }, [data, effectiveDimensions, hasCustomerFilter, columnFilters, searchTerm, stockMap, vendorStockMap, top50Mode]); + }, [data, filters, effectiveDimensions, hasCustomerFilter, columnFilters, searchTerm, stockMap, vendorStockMap, top50Mode]); const { years } = useMemo(() => { // We still need unique years for columns diff --git a/services/dataProcessor.ts b/services/dataProcessor.ts index fb61ee7..6c6f141 100644 --- a/services/dataProcessor.ts +++ b/services/dataProcessor.ts @@ -917,7 +917,7 @@ export const filterData = ( // 2. Filter Checks const customerMatch = filters.customer.length === 0 - ? PAN_EU_COUNTRIES.includes(item.customer) + ? (PAN_EU_COUNTRIES.includes(item.customer) || item.customer === 'Pan-EU') : filters.customer.includes(item.customer); const yearMatch = filters.year.length === 0 || filters.year.includes(item.year.toString());