import React, { useState } from 'react'; import { BarChart3, PieChart, TrendingUp, TrendingDown, Activity, Users, MousePointer, Clock, Search, Target, Zap, Globe, Smartphone, Monitor, ChevronDown, ChevronUp, MoreHorizontal, Download, Calendar, Filter, ArrowUpRight, ArrowDownRight, Eye, MousePointerClick, Navigation, MapPin, Layers, Grid, List, RefreshCw, AlertCircle, CheckCircle, Info, Star, Flame, Crown, Trophy, Award, Target as TargetIcon } from 'lucide-react'; interface FeatureUsage { id: string; name: string; category: string; totalUses: number; uniqueUsers: number; avgSessionTime: number; // seconds retentionRate: number; // percentage growthRate: number; // percentage satisfaction: number; // 1-10 errors: number; trend: 'up' | 'down' | 'stable'; lastUsed: string; } interface UserJourney { id: string; path: string[]; frequency: number; avgTime: number; completionRate: number; dropOffPoint?: string; } interface SearchQuery { query: string; count: number; resultsClicked: number; avgTimeToClick: number; conversionRate: number; } interface UserSegment { id: string; name: string; size: number; characteristics: string[]; topFeatures: string[]; avgSessionTime: number; retention: number; ltv: number; } const AnalyticsPanel: React.FC = () => { const [activeTab, setActiveTab] = useState<'overview' | 'features' | 'journeys' | 'searches' | 'segments' | 'heatmap'>('overview'); const [timeRange, setTimeRange] = useState<'24h' | '7d' | '30d' | '90d'>('7d'); // Feature Usage Data const [featureUsage] = useState([ { id: 'f1', name: 'Contract Scanner', category: 'Security Tools', totalUses: 45234, uniqueUsers: 12890, avgSessionTime: 45, retentionRate: 78, growthRate: 23, satisfaction: 9.2, errors: 12, trend: 'up', lastUsed: '2 mins ago' }, { id: 'f2', name: 'Wallet Analyzer', category: 'Security Tools', totalUses: 28456, uniqueUsers: 8934, avgSessionTime: 120, retentionRate: 65, growthRate: 15, satisfaction: 8.7, errors: 8, trend: 'up', lastUsed: '5 mins ago' }, { id: 'f3', name: 'Rug Pull Rehab Booking', category: 'Services', totalUses: 1234, uniqueUsers: 567, avgSessionTime: 180, retentionRate: 89, growthRate: 45, satisfaction: 9.8, errors: 2, trend: 'up', lastUsed: '15 mins ago' }, { id: 'f4', name: 'MunchMaps Visualization', category: 'Analytics', totalUses: 15678, uniqueUsers: 4567, avgSessionTime: 300, retentionRate: 72, growthRate: -5, satisfaction: 8.1, errors: 23, trend: 'down', lastUsed: '1 hour ago' }, { id: 'f5', name: 'AI Rug Bot Chat', category: 'AI Tools', totalUses: 89234, uniqueUsers: 23456, avgSessionTime: 240, retentionRate: 82, growthRate: 67, satisfaction: 9.5, errors: 34, trend: 'up', lastUsed: '30 seconds ago' }, { id: 'f6', name: 'Treasury Dashboard', category: 'Admin Tools', totalUses: 456, uniqueUsers: 23, avgSessionTime: 600, retentionRate: 95, growthRate: 12, satisfaction: 9.0, errors: 1, trend: 'stable', lastUsed: '2 hours ago' }, { id: 'f7', name: 'Social Command Center', category: 'Admin Tools', totalUses: 2345, uniqueUsers: 45, avgSessionTime: 450, retentionRate: 88, growthRate: 8, satisfaction: 8.9, errors: 5, trend: 'stable', lastUsed: '30 mins ago' }, { id: 'f8', name: 'Newsletter Manager', category: 'Marketing', totalUses: 567, uniqueUsers: 12, avgSessionTime: 900, retentionRate: 92, growthRate: 15, satisfaction: 9.1, errors: 0, trend: 'up', lastUsed: '1 hour ago' } ]); // User Journeys const [journeys] = useState([ { id: 'j1', path: ['Landing Page', 'Scanner', 'Results', 'Share Report'], frequency: 12456, avgTime: 120, completionRate: 85 }, { id: 'j2', path: ['Landing Page', 'MunchMaps', 'Wallet Search', 'Contract Deep Dive'], frequency: 8923, avgTime: 420, completionRate: 72 }, { id: 'j3', path: ['Twitter', 'Landing Page', 'Rehab Info', 'Booking Form', 'Payment'], frequency: 234, avgTime: 600, completionRate: 45, dropOffPoint: 'Payment' }, { id: 'j4', path: ['Dashboard', 'Wallet Manager', 'Add Wallet', 'Verify'], frequency: 567, avgTime: 300, completionRate: 68, dropOffPoint: 'Verify' } ]); // Search Queries const [searchQueries] = useState([ { query: 'honeypot detection', count: 4567, resultsClicked: 3421, avgTimeToClick: 2.3, conversionRate: 75 }, { query: 'rug pull check', count: 3892, resultsClicked: 2987, avgTimeToClick: 1.8, conversionRate: 77 }, { query: 'contract scanner', count: 3245, resultsClicked: 2890, avgTimeToClick: 2.1, conversionRate: 89 }, { query: 'wallet tracking', count: 2156, resultsClicked: 1456, avgTimeToClick: 3.2, conversionRate: 68 }, { query: 'sleep minting', count: 1876, resultsClicked: 1654, avgTimeToClick: 2.5, conversionRate: 88 }, { query: 'how to spot rug pull', count: 1654, resultsClicked: 1234, avgTimeToClick: 4.1, conversionRate: 75 }, { query: 'crypto scam checker', count: 1432, resultsClicked: 987, avgTimeToClick: 2.8, conversionRate: 69 }, { query: 'token contract analysis', count: 1234, resultsClicked: 1100, avgTimeToClick: 2.2, conversionRate: 89 } ]); // User Segments const [segments] = useState([ { id: 'seg1', name: 'Power Analysts', size: 2345, characteristics: ['Daily users', 'Multiple scans per session', 'Share reports', 'Premium subscribers'], topFeatures: ['Contract Scanner', 'MunchMaps', 'Wallet Clustering'], avgSessionTime: 600, retention: 94, ltv: 450 }, { id: 'seg2', name: 'Casual Checkers', size: 15678, characteristics: ['Weekly users', 'Single scan per visit', 'Mobile majority', 'Free tier'], topFeatures: ['Contract Scanner', 'AI Rug Bot'], avgSessionTime: 120, retention: 45, ltv: 25 }, { id: 'seg3', name: 'Rug Victims', size: 567, characteristics: ['High engagement', 'Rehab interest', 'Support needed', 'Emotional connection'], topFeatures: ['Rug Pull Rehab', 'Support Chat', 'Educational Content'], avgSessionTime: 900, retention: 78, ltv: 500 }, { id: 'seg4', name: 'Devs & Researchers', size: 892, characteristics: ['API users', 'Advanced features', 'Long sessions', 'Community contributors'], topFeatures: ['API Access', 'Advanced Analytics', 'Raw Data Export'], avgSessionTime: 1200, retention: 88, ltv: 200 } ]); // Stats const stats = { totalUsers: 45678, activeUsers24h: 12345, avgSessionTime: 345, bounceRate: 23, conversionRate: 12, featureAdoption: 78, topFeature: 'AI Rug Bot Chat', fastestGrowing: 'Rug Pull Rehab Booking' }; const getTrendIcon = (trend: string) => { switch (trend) { case 'up': return ; case 'down': return ; default: return ; } }; return (
{/* Header */}

ANALYTICS COMMAND

FEATURE USAGE & USER BEHAVIOR INTELLIGENCE

{(['24h', '7d', '30d', '90d'] as const).map((range) => ( ))}
{/* Stats Row */}
{stats.totalUsers.toLocaleString()}
Total Users
{stats.activeUsers24h.toLocaleString()}
Active (24h)
{Math.floor(stats.avgSessionTime / 60)}m
Avg Session
{stats.bounceRate}%
Bounce Rate
{stats.conversionRate}%
Conversion
{stats.featureAdoption}%
Feature Adoption
{/* Top Insights */}
Top Feature
{stats.topFeature}
89,234 uses • 9.5/10 satisfaction
Fastest Growing
{stats.fastestGrowing}
+45% growth this week
Needs Attention
MunchMaps Visualization
-5% usage • 23 errors logged
{/* Navigation */}
{[ { id: 'overview', label: 'OVERVIEW', icon: }, { id: 'features', label: 'FEATURE USAGE', icon: }, { id: 'journeys', label: 'USER JOURNEYS', icon: }, { id: 'searches', label: 'SEARCH QUERIES', icon: }, { id: 'segments', label: 'USER SEGMENTS', icon: }, { id: 'heatmap', label: 'HEATMAP', icon: }, ].map((tab) => ( ))}
{/* Overview Tab */} {activeTab === 'overview' && (

Feature Usage Distribution

Usage distribution chart

Daily Active Users Trend

DAU trend chart

Top Performing Features

{featureUsage .sort((a, b) => b.totalUses - a.totalUses) .slice(0, 5) .map((feature, idx) => (
{idx + 1}
{feature.name}
{feature.category}
{feature.totalUses.toLocaleString()}
uses
))}

Satisfaction Scores

{featureUsage .sort((a, b) => b.satisfaction - a.satisfaction) .slice(0, 5) .map((feature) => (
{feature.name} = 9 ? 'text-green-400' : feature.satisfaction >= 8 ? 'text-yellow-400' : 'text-red-400'}`}> {feature.satisfaction}/10
= 9 ? 'bg-green-400' : feature.satisfaction >= 8 ? 'bg-yellow-400' : 'bg-red-400' }`} style={{ width: `${feature.satisfaction * 10}%` }} >
))}
)} {/* Features Tab */} {activeTab === 'features' && (
{featureUsage.map((feature) => (

{feature.name}

{feature.category}

{getTrendIcon(feature.trend)} 0 ? 'text-green-400' : 'text-red-400'}`}> {feature.growthRate > 0 ? '+' : ''}{feature.growthRate}%
{feature.totalUses.toLocaleString()}
USES
{feature.uniqueUsers.toLocaleString()}
USERS
= 9 ? 'text-green-400' : feature.satisfaction >= 8 ? 'text-yellow-400' : 'text-red-400'}`}> {feature.satisfaction}
RATING
Retention: {feature.retentionRate}% Avg Time: {Math.floor(feature.avgSessionTime / 60)}m Errors: {feature.errors}
))}
)} {/* Journeys Tab */} {activeTab === 'journeys' && (
{journeys.map((journey) => (

Journey #{journey.id}

{journey.frequency.toLocaleString()} users • {Math.floor(journey.avgTime / 60)}m avg

{journey.completionRate}%
completion
{journey.path.map((step, idx) => (
{step}
{idx < journey.path.length - 1 && ( )}
))}
{journey.dropOffPoint && (
Drop-off point: {journey.dropOffPoint} - {100 - journey.completionRate}% of users exit here
)}
))}
)} {/* Searches Tab */} {activeTab === 'searches' && (

Top Search Queries

Last 30 days
{searchQueries.map((sq, idx) => (
#{idx + 1} "{sq.query}"
{sq.count.toLocaleString()}
CTR: {((sq.resultsClicked / sq.count) * 100).toFixed(1)}%
Avg Time: {sq.avgTimeToClick}s
Conversion: {sq.conversionRate}%
))}

Search Insights

Most Searched Topic
Honeypot Detection
4,567 searches
Zero Results Queries
23
Opportunity for new content
Search Conversion
78.5%
Users who find what they need
)} {/* Segments Tab */} {activeTab === 'segments' && (
{segments.map((segment) => (

{segment.name}

{segment.size.toLocaleString()} users ({((segment.size / stats.totalUsers) * 100).toFixed(1)}%)

${segment.ltv}
LTV
Characteristics
{segment.characteristics.map((char, idx) => ( {char} ))}
Top Features
{segment.topFeatures.map((feature, idx) => (
{idx + 1} {feature}
))}
{Math.floor(segment.avgSessionTime / 60)}m
AVG SESSION
{segment.retention}%
RETENTION
))}
)} {/* Heatmap Tab */} {activeTab === 'heatmap' && (

Click Heatmap

Heatmap visualization

{/* Simulated heat points */}
Hot Zone 1
Scan Button
34.2%
of all clicks
Hot Zone 2
Results Share
18.7%
of all clicks
Hot Zone 3
Connect Wallet
12.3%
of all clicks
)}
); }; export default AnalyticsPanel;