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());