import { useState, useEffect } from 'react' import { LineChart, Line, BarChart, Bar, XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer, Legend } from 'recharts' import { Download, RefreshCw, AlertCircle, Loader2 } from 'lucide-react' import api from '../services/api' export default function Analytics() { const [data, setData] = useState(null) const [logs, setLogs] = useState([]) const [pagination, setPagination] = useState({ total: 0, page: 1, page_size: 20, total_pages: 1, has_prev: false, has_next: false }) const [page, setPage] = useState(1) const [pageSize, setPageSize] = useState(20) const [loading, setLoading] = useState(true) useEffect(() => { fetchData() }, [page, pageSize]) const fetchData = async () => { setLoading(true) try { const [summaryRes, logsRes] = await Promise.all([ api.get('/api/user/analytics/summary'), api.get(`/api/user/analytics/logs?page=${page}&page_size=${pageSize}`) ]) setData(summaryRes.data) setLogs(logsRes.data.logs) setPagination(logsRes.data.pagination || { total: 0, page: 1, page_size: pageSize, total_pages: 1, has_prev: false, has_next: false }) } catch (err) { console.error("Failed to fetch analytics", err) } finally { setLoading(false) } } if (loading || !data) { return (
Monitor API performance and OTP delivery rates over time.