Update src/admin/charts/SecurityTimeline.tsx
Browse files
src/admin/charts/SecurityTimeline.tsx
CHANGED
|
@@ -1,11 +1,4 @@
|
|
| 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 |
|
|
@@ -13,15 +6,13 @@ export default function SecurityTimeline() {
|
|
| 13 |
const [data, setData] = useState<any[]>([]);
|
| 14 |
|
| 15 |
useEffect(() => {
|
| 16 |
-
api.get("/admin/security/anomalies").then(
|
| 17 |
-
const map:
|
| 18 |
-
r.data.forEach((l:
|
| 19 |
const h = new Date(l.createdAt).getHours();
|
| 20 |
-
map[h]
|
| 21 |
});
|
| 22 |
-
setData(
|
| 23 |
-
Object.entries(map).map(([h, c]) => ({ hour: h, count: c }))
|
| 24 |
-
);
|
| 25 |
});
|
| 26 |
}, []);
|
| 27 |
|
|
|
|
| 1 |
+
import { LineChart, Line, XAxis, YAxis, Tooltip, ResponsiveContainer } from "recharts";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2 |
import api from "../../api";
|
| 3 |
import { useEffect, useState } from "react";
|
| 4 |
|
|
|
|
| 6 |
const [data, setData] = useState<any[]>([]);
|
| 7 |
|
| 8 |
useEffect(() => {
|
| 9 |
+
api.get("/admin/security/anomalies").then(r => {
|
| 10 |
+
const map:any = {};
|
| 11 |
+
r.data.forEach((l:any)=>{
|
| 12 |
const h = new Date(l.createdAt).getHours();
|
| 13 |
+
map[h]=(map[h]||0)+1;
|
| 14 |
});
|
| 15 |
+
setData(Object.entries(map).map(([h,c])=>({hour:h,count:c})));
|
|
|
|
|
|
|
| 16 |
});
|
| 17 |
}, []);
|
| 18 |
|