File size: 5,740 Bytes
017bc0e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
import { useState, useEffect } from 'react'
import { Shield, EyeOff, Lock, Activity, AlertTriangle, CheckCircle } from 'lucide-react'

export default function PrivacyDashboard() {
  const [securityMetrics, setSecurityMetrics] = useState({
    encryptionLevel: 'AES-256',
    threatsBlocked: 0,
    dataProcessed: 0,
    uptime: '100%'
  })

  const [recentActivities, setRecentActivities] = useState([])

  useEffect(() => {
    // Simulate real-time security updates
    const interval = setInterval(() => {
      setSecurityMetrics(prev => ({
        ...prev,
        threatsBlocked: prev.threatsBlocked + Math.floor(Math.random() * 3),
        dataProcessed: prev.dataProcessed + Math.floor(Math.random() * 10)
      }))

      setRecentActivities(prev => {
        const newActivity = {
          id: Date.now(),
          action: ['Threat detected', 'Data encrypted', 'Access logged'][Math.floor(Math.random() * 3)],
          timestamp: new Date().toLocaleTimeString(),
          status: 'secured'
        }
        return [newActivity, ...prev.slice(0, 4)]
      })
    }, 5000)

    return () => clearInterval(interval)
  }, [])

  return (
    <div className="card">
      <h2 className="text-2xl font-bold mb-6 flex items-center">
        <Shield className="mr-2 h-6 w-6 text-primary-500" />
        Privacy & Security
      </h2>

      <div className="grid grid-cols-2 gap-4 mb-6">
        <div className="p-4 bg-green-50 dark:bg-green-900/20 rounded-lg border border-green-200 dark:border-green-800">
          <div className="flex items-center justify-between mb-1">
            <Lock className="h-4 w-4 text-green-600 dark:text-green-400" />
            <span className="text-xs text-green-700 dark:text-green-300">ACTIVE</span>
          </div>
          <p className="text-lg font-semibold">{securityMetrics.encryptionLevel}</p>
          <p className="text-xs text-green-700 dark:text-green-300">Encryption</p>
        </div>

        <div className="p-4 bg-blue-50 dark:bg-blue-900/20 rounded-lg border border-blue-200 dark:border-blue-800">
          <div className="flex items-center justify-between mb-1">
            <EyeOff className="h-4 w-4 text-blue-600 dark:text-blue-400" />
            <span className="text-xs text-blue-700 dark:text-blue-300">LIVE</span>
          </div>
          <p className="text-lg font-semibold">{securityMetrics.uptime}</p>
          <p className="text-xs text-blue-700 dark:text-blue-300">Uptime</p>
        </div>

        <div className="p-4 bg-orange-50 dark:bg-orange-900/20 rounded-lg border border-orange-200 dark:border-orange-800">
          <div className="flex items-center justify-between mb-1">
            <AlertTriangle className="h-4 w-4 text-orange-600 dark:text-orange-400" />
            <span className="text-xs text-orange-700 dark:text-orange-300">BLOCKED</span>
          </div>
          <p className="text-lg font-semibold">{securityMetrics.threatsBlocked}</p>
          <p className="text-xs text-orange-700 dark:text-orange-300">Threats</p>
        </div>

        <div className="p-4 bg-purple-50 dark:bg-purple-900/20 rounded-lg border border-purple-200 dark:border-purple-800">
          <div className="flex items-center justify-between mb-1">
            <Activity className="h-4 w-4 text-purple-600 dark:text-purple-400" />
            <span className="text-xs text-purple-700 dark:text-purple-300">PROCESSED</span>
          </div>
          <p className="text-lg font-semibold">{securityMetrics.dataProcessed}</p>
          <p className="text-xs text-purple-700 dark:text-purple-300">Data Units</p>
        </div>
      </div>

      <div className="border-t border-dark-200 dark:border-dark-700 pt-4">
        <h3 className="font-semibold mb-3 flex items-center">
          <Activity className="h-4 w-4 mr-2" />
          Security Activity
        </h3>
        <div className="space-y-2">
          {recentActivities.length === 0 ? (
            <p className="text-sm text-dark-500 dark:text-dark-400">No recent activity</p>
          ) : (
            recentActivities.map((activity) => (
              <div
                key={activity.id}
                className="flex items-center justify-between p-2 bg-dark-50 dark:bg-dark-800 rounded border border-dark-200 dark:border-dark-700"
              >
                <div className="flex items-center space-x-2">
                  <CheckCircle className="h-3 w-3 text-green-500" />
                  <span className="text-sm">{activity.action}</span>
                </div>
                <span className="text-xs text-dark-500 dark:text-dark-400">{activity.timestamp}</span>
              </div>
            ))
          )}
        </div>
      </div>

      <div className="mt-6 p-4 bg-dark-50 dark:bg-dark-800 rounded-lg border border-dark-200 dark:border-dark-700">
        <h3 className="font-semibold mb-2 text-sm">Privacy Guarantee</h3>
        <ul className="space-y-1 text-xs text-dark-600 dark:text-dark-400">
          <li className="flex items-center space-x-2">
            <CheckCircle className="h-3 w-3 text-green-500" />
            <span>End-to-end encryption</span>
          </li>
          <li className="flex items-center space-x-2">
            <CheckCircle className="h-3 w-3 text-green-500" />
            <span>Zero data retention</span>
          </li>
          <li className="flex items-center space-x-2">
            <CheckCircle className="h-3 w-3 text-green-500" />
            <span>Local processing priority</span>
          </li>
          <li className="flex items-center space-x-2">
            <CheckCircle className="h-3 w-3 text-green-500" />
            <span>Anonymous usage tracking</span>
          </li>
        </ul>
      </div>
    </div>
  )
}