feat: auto-sort by ranking (1-50) when Top 50 filter is active in Ads tab

This commit is contained in:
Christian Vidal Wolf
2026-01-26 10:54:50 +01:00
parent 3de971801d
commit 1f1077edcd
+22 -7
View File
@@ -184,11 +184,26 @@ const AdsPerformance: React.FC<AdsPerformanceProps> = ({ data, filters, top50Ran
item.title.toLowerCase().includes(searchTerm.toLowerCase())
);
result.sort((a, b) => {
const valA = a[sortConfig.key] as number;
const valB = b[sortConfig.key] as number;
return sortConfig.direction === 'asc' ? valA - valB : valB - valA;
});
// Sort: by ranking when Top 50 is active, otherwise by sortConfig
if (showOnlyTop50 && top50Ranking) {
result.sort((a, b) => {
const asinA = a.asin.trim().toUpperCase();
const asinB = b.asin.trim().toUpperCase();
const rankA = top50Mode === 'eu'
? (top50Ranking.eu.get(asinA) || 999)
: (top50Ranking.uk.get(asinA) || 999);
const rankB = top50Mode === 'eu'
? (top50Ranking.eu.get(asinB) || 999)
: (top50Ranking.uk.get(asinB) || 999);
return rankA - rankB;
});
} else {
result.sort((a, b) => {
const valA = a[sortConfig.key] as number;
const valB = b[sortConfig.key] as number;
return sortConfig.direction === 'asc' ? valA - valB : valB - valA;
});
}
return result;
}, [aggregatedByAsin, searchTerm, sortConfig, showOnlyTop50, top50Ranking, top50Mode]);
@@ -263,8 +278,8 @@ const AdsPerformance: React.FC<AdsPerformanceProps> = ({ data, filters, top50Ran
<button
onClick={() => setShowOnlyTop50(!showOnlyTop50)}
className={`flex items-center gap-2 px-3 py-1.5 rounded-lg text-xs font-bold transition-all ${showOnlyTop50
? 'bg-gradient-to-r from-amber-500 to-orange-500 text-white shadow-lg shadow-amber-500/20'
: 'text-slate-400 hover:text-amber-400'
? 'bg-gradient-to-r from-amber-500 to-orange-500 text-white shadow-lg shadow-amber-500/20'
: 'text-slate-400 hover:text-amber-400'
}`}
>
<span className="text-sm">🏆</span>