mirror of
https://github.com/christianvidalwolf-prog/CrazeAnalytix.git
synced 2026-08-03 18:05:23 +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) {
|
if (searchTerm) {
|
||||||
const lowSearch = searchTerm.toLowerCase();
|
const searchTerms = searchTerm.toLowerCase().split(/[\s,]+/).filter(term => term.length > 0);
|
||||||
result = result.filter(item =>
|
if (searchTerms.length > 0) {
|
||||||
item.asin.toLowerCase().includes(lowSearch) ||
|
result = result.filter(item => {
|
||||||
item.sku.toLowerCase().includes(lowSearch) ||
|
const rowValues = [
|
||||||
item.title.toLowerCase().includes(lowSearch)
|
item.asin.toLowerCase(),
|
||||||
);
|
item.sku.toLowerCase(),
|
||||||
|
item.title.toLowerCase()
|
||||||
|
];
|
||||||
|
return searchTerms.some(term =>
|
||||||
|
rowValues.some(val => val.includes(term))
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Apply WOC Filter
|
// Apply WOC Filter
|
||||||
|
|||||||
@@ -276,11 +276,19 @@ const ForecastView: React.FC<ForecastViewProps> = ({
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (debouncedSearch) {
|
if (debouncedSearch) {
|
||||||
result = result.filter(p =>
|
const searchTerms = debouncedSearch.toLowerCase().split(/[\s,]+/).filter(term => term.length > 0);
|
||||||
p.sku.toLowerCase().includes(debouncedSearch) ||
|
if (searchTerms.length > 0) {
|
||||||
p.asin.toLowerCase().includes(debouncedSearch) ||
|
result = result.filter(p => {
|
||||||
p.title.toLowerCase().includes(debouncedSearch)
|
const rowValues = [
|
||||||
);
|
p.sku.toLowerCase(),
|
||||||
|
p.asin.toLowerCase(),
|
||||||
|
p.title.toLowerCase()
|
||||||
|
];
|
||||||
|
return searchTerms.some(term =>
|
||||||
|
rowValues.some(val => val.includes(term))
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Apply WOC Filter
|
// Apply WOC Filter
|
||||||
|
|||||||
@@ -248,13 +248,20 @@ const WeeklyGrid: React.FC<WeeklyGridProps & { top50Mode: 'eu' | 'uk' }> = ({
|
|||||||
|
|
||||||
// Search Filter
|
// Search Filter
|
||||||
if (debouncedSearch) {
|
if (debouncedSearch) {
|
||||||
const lowSearch = debouncedSearch.toLowerCase();
|
const searchTerms = debouncedSearch.toLowerCase().split(/[\s,]+/).filter(t => t.length > 0);
|
||||||
result = result.filter(r =>
|
if (searchTerms.length > 0) {
|
||||||
r.sku.toLowerCase().includes(lowSearch) ||
|
result = result.filter(r => {
|
||||||
r.asin.toLowerCase().includes(lowSearch) ||
|
const rowValues = [
|
||||||
r.title.toLowerCase().includes(lowSearch) ||
|
r.sku.toLowerCase(),
|
||||||
r.line.toLowerCase().includes(lowSearch)
|
r.asin.toLowerCase(),
|
||||||
);
|
r.title.toLowerCase(),
|
||||||
|
r.line.toLowerCase()
|
||||||
|
];
|
||||||
|
return searchTerms.some(term =>
|
||||||
|
rowValues.some(val => val.includes(term))
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Growth Filter (if active)
|
// Growth Filter (if active)
|
||||||
|
|||||||
Reference in New Issue
Block a user