import { Download, Share2, Users, BarChart3, Palette, Settings } from "lucide-react"; import { Button } from "@/components/ui/button"; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; import { Badge } from "@/components/ui/badge"; import { useState, useEffect } from "react"; import { storage } from "@/lib/storage"; import { userTracking, UserAnalytics } from "@/lib/userTracking"; interface AnalyticsData { totalCalculations: number; totalReports: number; activeModules: string[]; lastActivity: string; storageUsed: string; totalSessions: number; averageSessionTime: number; userId: string; } export default function DownloadManager() { const [analytics, setAnalytics] = useState({ totalCalculations: 0, totalReports: 0, activeModules: [], lastActivity: "Never", storageUsed: "0 KB", totalSessions: 0, averageSessionTime: 0, userId: "Loading..." }); useEffect(() => { loadAnalytics(); }, []); const loadAnalytics = async () => { try { const calculations = await storage.getCalculations(); const reports = await storage.getReports(); const stats = await storage.getStorageStats(); const userAnalytics = userTracking.getAnalytics(); const moduleUsage = calculations.reduce((acc: Record, calc) => { acc[calc.module] = (acc[calc.module] || 0) + 1; return acc; }, {}); const lastCalc = calculations.length > 0 ? new Date(Math.max(...calculations.map(c => new Date(c.createdAt).getTime()))).toLocaleDateString() : "Never"; setAnalytics({ totalCalculations: calculations.length, totalReports: reports.length, activeModules: Object.keys(moduleUsage), lastActivity: lastCalc, storageUsed: stats.size, totalSessions: userAnalytics.totalSessions, averageSessionTime: userAnalytics.averageSessionTime, userId: userTracking.getUserId() }); } catch (error) { console.error('Error loading analytics:', error); } }; const downloadApp = () => { // PWA download will be handled by browser if ('serviceWorker' in navigator) { window.dispatchEvent(new Event('beforeinstallprompt')); } }; const shareApp = async () => { const shareData = { title: 'प्रिथ्वी Guardian AI - Environmental Engineering Assistant', text: 'Advanced environmental engineering calculations and analysis powered by VBharat AI. Try this comprehensive offline PWA!', url: window.location.origin }; if (navigator.share) { try { await navigator.share(shareData); } catch (error) { console.log('Error sharing:', error); copyToClipboard(shareData.url); } } else { copyToClipboard(shareData.url); } }; const copyToClipboard = (text: string) => { navigator.clipboard.writeText(text).then(() => { alert('App link copied to clipboard!'); }); }; const exportData = async () => { try { const data = await storage.exportData(); const blob = new Blob([data], { type: 'application/json' }); const url = URL.createObjectURL(blob); const a = document.createElement('a'); a.href = url; a.download = `prithvi-guardian-data-${new Date().toISOString().split('T')[0]}.json`; document.body.appendChild(a); a.click(); document.body.removeChild(a); URL.revokeObjectURL(url); } catch (error) { console.error('Error exporting data:', error); } }; return (
{/* App Download & Sharing */} Download & Share App Install प्रिथ्वी Guardian AI as a Progressive Web App for offline access
{/* User Analytics */} Usage Analytics Track your environmental engineering work and application usage
{analytics.totalCalculations}
Calculations
{analytics.totalReports}
Reports
{analytics.totalSessions}
Sessions
{analytics.averageSessionTime}m
Avg Session

User ID: {analytics.userId.slice(0, 16)}...

Storage Used: {analytics.storageUsed}

Last Activity: {analytics.lastActivity}

Modules Used: {analytics.activeModules.length}

{analytics.activeModules.map((module, index) => ( {module} ))}
{/* Feature List */} Key Features Comprehensive environmental engineering solutions powered by VBharat AI
{[ { title: "Air Quality Analysis", desc: "PM2.5, PM10, AQI calculations", color: "bg-blue-500" }, { title: "Water Quality Testing", desc: "pH, BOD, COD, TDS analysis", color: "bg-cyan-500" }, { title: "Emission Calculations", desc: "Industrial emission tracking", color: "bg-orange-500" }, { title: "Lab Calculations", desc: "Molarity, dilution formulas", color: "bg-purple-500" }, { title: "Weather Analysis", desc: "Meteorological calculations", color: "bg-green-500" }, { title: "Impact Assessment", desc: "Environmental impact scoring", color: "bg-red-500" }, { title: "PDF Reports", desc: "Professional report generation", color: "bg-indigo-500" }, { title: "Civil Engineering", desc: "Structural calculations", color: "bg-yellow-500" }, { title: "AI Assistant", desc: "Offline environmental Q&A", color: "bg-pink-500" } ].map((feature, index) => (

{feature.title}

{feature.desc}

))}
); }