mirror of
https://github.com/christianvidalwolf-prog/CrazeAnalytix.git
synced 2026-08-03 11:55:22 +02:00
Fix GRID tab empty table regression by correcting filter logic and prop passing
This commit is contained in:
@@ -761,6 +761,7 @@ const App: React.FC = () => {
|
||||
<div className={view === 'table' ? '' : 'hidden'}>
|
||||
<DataGrid
|
||||
data={ytdGridData}
|
||||
filters={filters}
|
||||
hasCustomerFilter={filters.customer.length > 0}
|
||||
adsData={filteredAdsData}
|
||||
stockMap={stockMap}
|
||||
|
||||
+6
-15
@@ -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<string, number>;
|
||||
@@ -242,7 +243,7 @@ const ExpandableChartCard: React.FC<{ title: string; children: React.ReactNode;
|
||||
};
|
||||
|
||||
|
||||
const DataGrid: React.FC<DataGridProps> = ({ data, hasCustomerFilter, adsData, stockMap, vendorStockMap, top50Ranking, top50Mode, velocityMap, buyBoxLostMap, defaultSort }) => {
|
||||
const DataGrid: React.FC<DataGridProps> = ({ data, filters, hasCustomerFilter, adsData, stockMap, vendorStockMap, top50Ranking, top50Mode, velocityMap, buyBoxLostMap, defaultSort }) => {
|
||||
const [currentPage, setCurrentPage] = useState(1);
|
||||
const [searchTerm, setSearchTerm] = useState('');
|
||||
const [sortConfig, setSortConfig] = useState<SortConfig>(defaultSort || { key: null, direction: 'desc' });
|
||||
@@ -323,18 +324,8 @@ const DataGrid: React.FC<DataGridProps> = ({ 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<DataGridProps> = ({ 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
|
||||
|
||||
@@ -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());
|
||||
|
||||
|
||||
Reference in New Issue
Block a user