Twan07 commited on
Commit
7b72987
·
verified ·
1 Parent(s): 728752a

Create src/admin/charts/SecurityTimeline.tsx

Browse files
src/admin/charts/SecurityTimeline.tsx ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import {
2
+ LineChart,
3
+ Line,
4
+ XAxis,
5
+ YAxis,
6
+ Tooltip,
7
+ ResponsiveContainer,
8
+ } from "recharts";
9
+ import api from "../../api";
10
+ import { useEffect, useState } from "react";
11
+
12
+ export default function SecurityTimeline() {
13
+ const [data, setData] = useState<any[]>([]);
14
+
15
+ useEffect(() => {
16
+ api.get("/admin/security/anomalies").then((r) => {
17
+ const map: any = {};
18
+ r.data.forEach((l: any) => {
19
+ const h = new Date(l.createdAt).getHours();
20
+ map[h] = (map[h] || 0) + 1;
21
+ });
22
+ setData(
23
+ Object.entries(map).map(([h, c]) => ({ hour: h, count: c }))
24
+ );
25
+ });
26
+ }, []);
27
+
28
+ return (
29
+ <div className="bg-zinc-900 p-4 rounded-xl h-72">
30
+ <ResponsiveContainer>
31
+ <LineChart data={data}>
32
+ <XAxis dataKey="hour" />
33
+ <YAxis />
34
+ <Tooltip />
35
+ <Line dataKey="count" stroke="#ef4444" />
36
+ </LineChart>
37
+ </ResponsiveContainer>
38
+ </div>
39
+ );
40
+ }