diff --git a/src/app/(dashboard)/accounts/page.tsx b/src/app/(dashboard)/accounts/page.tsx index 4418b7d..2b52563 100644 --- a/src/app/(dashboard)/accounts/page.tsx +++ b/src/app/(dashboard)/accounts/page.tsx @@ -111,6 +111,7 @@ export default function AccountExplorer() { const [renewalFilter, setRenewalFilter] = useState('all'); const [priorityFilter, setPriorityFilter] = useState(null); const [competitorFilter, setCompetitorFilter] = useState(null); + const [cpmFilter, setCpmFilter] = useState(null); const [selectedAccount, setSelectedAccount] = useState(null); const [showCreateOpp, setShowCreateOpp] = useState(false); const [showAddActivity, setShowAddActivity] = useState(false); @@ -177,6 +178,7 @@ export default function AccountExplorer() { const adValues = useMemo(() => Array.from(new Set(accounts.map(a => a.AD).filter(Boolean))).sort() as string[], [accounts]); const imsbaValues = useMemo(() => Array.from(new Set(accounts.map(a => a.IMS_BA).filter(Boolean))).sort() as string[], [accounts]); + const cpmValues = useMemo(() => Array.from(new Set(accounts.map(a => a.CPM).filter(Boolean))).sort() as string[], [accounts]); const filteredAccounts = useMemo(() => { const now = new Date(); @@ -190,6 +192,7 @@ export default function AccountExplorer() { if (districtFilter) result = result.filter(a => a.District_Name === districtFilter); if (adFilter) result = result.filter(a => a.AD === adFilter); if (imsbaFilter) result = result.filter(a => a.IMS_BA === imsbaFilter); + if (cpmFilter) result = result.filter(a => a.CPM === cpmFilter); if (priorityFilter) result = result.filter(a => a.Priority === priorityFilter); if (competitorFilter) result = result.filter(a => { const comps = (a.Competitors || '').split(',').map(c => c.trim()).filter(Boolean); @@ -213,7 +216,7 @@ export default function AccountExplorer() { } } return result; - }, [accounts, search, tierFilter, statusFilter, districtFilter, adFilter, imsbaFilter, renewalFilter, priorityFilter, competitorFilter]); + }, [accounts, search, tierFilter, statusFilter, districtFilter, adFilter, imsbaFilter, cpmFilter, renewalFilter, priorityFilter, competitorFilter]); const kpis = useMemo(() => { const acctNames = new Set(filteredAccounts.map(a => a.Account_Name)); @@ -292,11 +295,12 @@ export default function AccountExplorer() { setImsbaFilter(null); setPriorityFilter(null); setCompetitorFilter(null); + setCpmFilter(null); setRenewalFilter('all'); setSearch(''); }; - const hasFilters = tierFilter || statusFilter || districtFilter || adFilter || imsbaFilter || priorityFilter || competitorFilter || renewalFilter !== 'all' || search; + const hasFilters = tierFilter || statusFilter || districtFilter || adFilter || imsbaFilter || cpmFilter || priorityFilter || competitorFilter || renewalFilter !== 'all' || search; if (selectedAccount) { const suggestion = getSuggestedPriority(selectedAccount); @@ -395,8 +399,8 @@ export default function AccountExplorer() { )} - {(selectedAccount.AD || selectedAccount.IMS_BA || selectedAccount.Area_Sales_Leader || selectedAccount.DM) && ( -
+ {(selectedAccount.AD || selectedAccount.IMS_BA || selectedAccount.CPM || selectedAccount.Area_Sales_Leader || selectedAccount.DM) && ( +
{selectedAccount.Area_Sales_Leader && (
Area Sales Leader
@@ -421,6 +425,12 @@ export default function AccountExplorer() {
{selectedAccount.IMS_BA}
)} + {selectedAccount.CPM && ( +
+
CPM
+
{selectedAccount.CPM}
+
+ )}
)}
@@ -815,6 +825,16 @@ export default function AccountExplorer() { {imsbaValues.map(v => )} )} + {cpmValues.length > 0 && ( + + )}