diff --git a/components/AdsPerformance.tsx b/components/AdsPerformance.tsx index 82c0fee..3920c17 100644 --- a/components/AdsPerformance.tsx +++ b/components/AdsPerformance.tsx @@ -184,11 +184,26 @@ const AdsPerformance: React.FC = ({ 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 = ({ data, filters, top50Ran