diff --git a/frontend/src/components/admin/EarningsTab.tsx b/frontend/src/components/admin/EarningsTab.tsx
index 78297b7..4fcb13b 100644
--- a/frontend/src/components/admin/EarningsTab.tsx
+++ b/frontend/src/components/admin/EarningsTab.tsx
@@ -17,7 +17,6 @@ import {
Target,
Activity,
BarChart3,
- PieChart as PieChartIcon,
} from 'lucide-react'
import clsx from 'clsx'
import {
@@ -25,11 +24,7 @@ import {
Area,
BarChart,
Bar,
- LineChart,
Line,
- PieChart,
- Pie,
- Cell,
XAxis,
YAxis,
CartesianGrid,
@@ -76,24 +71,22 @@ interface HistoryData {
timestamp: string
}
-// Custom colors matching the design system
+// Custom colors
const COLORS = {
- primary: '#ef4444', // red-500
- accent: '#22c55e', // green-500
- amber: '#f59e0b', // amber-500
- blue: '#3b82f6', // blue-500
- purple: '#8b5cf6', // purple-500
- cyan: '#06b6d4', // cyan-500
- rose: '#f43f5e', // rose-500
+ primary: '#ef4444',
+ accent: '#22c55e',
+ amber: '#f59e0b',
+ blue: '#3b82f6',
+ rose: '#f43f5e',
}
const TIER_COLORS = {
- scout: '#6b7280', // gray-500
- trader: '#22c55e', // green-500
- tycoon: '#f59e0b', // amber-500
+ scout: '#6b7280',
+ trader: '#22c55e',
+ tycoon: '#f59e0b',
}
-// Custom tooltip component
+// Custom tooltip
const CustomTooltip = ({ active, payload, label }: any) => {
if (!active || !payload || !payload.length) return null
@@ -102,15 +95,10 @@ const CustomTooltip = ({ active, payload, label }: any) => {
{label}
{payload.map((entry: any, index: number) => (
-
+
{entry.name}:
- {entry.name.includes('$') || entry.dataKey === 'mrr' || entry.dataKey === 'arr'
- ? `$${entry.value.toLocaleString()}`
- : entry.value}
+ {entry.dataKey === 'mrr' ? `$${entry.value.toLocaleString()}` : entry.value}
))}
@@ -123,7 +111,7 @@ export function EarningsTab() {
const [history, setHistory] = useState(null)
const [loading, setLoading] = useState(true)
const [refreshing, setRefreshing] = useState(false)
- const [activeChart, setActiveChart] = useState<'mrr' | 'customers' | 'tiers'>('mrr')
+ const [activeChart, setActiveChart] = useState<'revenue' | 'growth'>('revenue')
const loadData = async () => {
try {
@@ -167,18 +155,8 @@ export function EarningsTab() {
)
}
- // Prepare pie chart data
- const pieData = [
- { name: 'Tycoon', value: data.tier_breakdown.tycoon.count, color: TIER_COLORS.tycoon },
- { name: 'Trader', value: data.tier_breakdown.trader.count, color: TIER_COLORS.trader },
- { name: 'Scout', value: data.tier_breakdown.scout.count, color: TIER_COLORS.scout },
- ].filter(d => d.value > 0)
-
- // Revenue pie data
- const revenuePieData = [
- { name: 'Tycoon', value: data.tier_breakdown.tycoon.revenue, color: TIER_COLORS.tycoon },
- { name: 'Trader', value: data.tier_breakdown.trader.revenue, color: TIER_COLORS.trader },
- ].filter(d => d.value > 0)
+ // Calculate net growth
+ const netGrowth = data.new_subscriptions.month - data.churn.month
return (
@@ -190,7 +168,7 @@ export function EarningsTab() {
Revenue Dashboard
- Last updated: {new Date(data.timestamp).toLocaleString()}
+ Updated: {new Date(data.timestamp).toLocaleString()}