mirror of
https://github.com/christianvidalwolf-prog/CrazeAnalytix.git
synced 2026-08-03 14:05:24 +02:00
Implement multi-ASIN/SKU search support in all main views
This commit is contained in:
@@ -260,12 +260,19 @@ const AdsPerformance: React.FC<AdsPerformanceProps> = ({
|
||||
}
|
||||
|
||||
if (searchTerm) {
|
||||
const lowSearch = searchTerm.toLowerCase();
|
||||
result = result.filter(item =>
|
||||
item.asin.toLowerCase().includes(lowSearch) ||
|
||||
item.sku.toLowerCase().includes(lowSearch) ||
|
||||
item.title.toLowerCase().includes(lowSearch)
|
||||
);
|
||||
const searchTerms = searchTerm.toLowerCase().split(/[\s,]+/).filter(term => term.length > 0);
|
||||
if (searchTerms.length > 0) {
|
||||
result = result.filter(item => {
|
||||
const rowValues = [
|
||||
item.asin.toLowerCase(),
|
||||
item.sku.toLowerCase(),
|
||||
item.title.toLowerCase()
|
||||
];
|
||||
return searchTerms.some(term =>
|
||||
rowValues.some(val => val.includes(term))
|
||||
);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// Apply WOC Filter
|
||||
|
||||
@@ -276,11 +276,19 @@ const ForecastView: React.FC<ForecastViewProps> = ({
|
||||
}
|
||||
|
||||
if (debouncedSearch) {
|
||||
result = result.filter(p =>
|
||||
p.sku.toLowerCase().includes(debouncedSearch) ||
|
||||
p.asin.toLowerCase().includes(debouncedSearch) ||
|
||||
p.title.toLowerCase().includes(debouncedSearch)
|
||||
);
|
||||
const searchTerms = debouncedSearch.toLowerCase().split(/[\s,]+/).filter(term => term.length > 0);
|
||||
if (searchTerms.length > 0) {
|
||||
result = result.filter(p => {
|
||||
const rowValues = [
|
||||
p.sku.toLowerCase(),
|
||||
p.asin.toLowerCase(),
|
||||
p.title.toLowerCase()
|
||||
];
|
||||
return searchTerms.some(term =>
|
||||
rowValues.some(val => val.includes(term))
|
||||
);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// Apply WOC Filter
|
||||
|
||||
@@ -248,13 +248,20 @@ const WeeklyGrid: React.FC<WeeklyGridProps & { top50Mode: 'eu' | 'uk' }> = ({
|
||||
|
||||
// Search Filter
|
||||
if (debouncedSearch) {
|
||||
const lowSearch = debouncedSearch.toLowerCase();
|
||||
result = result.filter(r =>
|
||||
r.sku.toLowerCase().includes(lowSearch) ||
|
||||
r.asin.toLowerCase().includes(lowSearch) ||
|
||||
r.title.toLowerCase().includes(lowSearch) ||
|
||||
r.line.toLowerCase().includes(lowSearch)
|
||||
);
|
||||
const searchTerms = debouncedSearch.toLowerCase().split(/[\s,]+/).filter(t => t.length > 0);
|
||||
if (searchTerms.length > 0) {
|
||||
result = result.filter(r => {
|
||||
const rowValues = [
|
||||
r.sku.toLowerCase(),
|
||||
r.asin.toLowerCase(),
|
||||
r.title.toLowerCase(),
|
||||
r.line.toLowerCase()
|
||||
];
|
||||
return searchTerms.some(term =>
|
||||
rowValues.some(val => val.includes(term))
|
||||
);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// Growth Filter (if active)
|
||||
|
||||
Reference in New Issue
Block a user