blob: 6ab47467e416a8cbd961eda14075d983e23b4cf3 [file] [log] [blame]
TRM-codingd1cbf672025-06-18 15:15:08 +08001import React, { useEffect, useState } from 'react';
TRM-coding85e5c322025-06-18 19:49:21 +08002import { NavLink, Outlet } from 'react-router-dom';
TRM-codingd1cbf672025-06-18 15:15:08 +08003import '../style/Admin.css';
4
5function LogsDashboard() {
95630366980c1f272025-06-20 14:08:54 +08006 // eslint-disable-next-line no-unused-vars
TRM-codingd1cbf672025-06-18 15:15:08 +08007 const [logs, setLogs] = useState([]);
95630366980c1f272025-06-20 14:08:54 +08008 // eslint-disable-next-line no-unused-vars
TRM-codingd1cbf672025-06-18 15:15:08 +08009 const [stats, setStats] = useState({});
10
11 useEffect(() => {
12 fetch('/api/logs')
13 .then(res => res.json())
14 .then(setLogs)
15 .catch(console.error);
16 fetch('/api/stats')
17 .then(res => res.json())
18 .then(setStats)
19 .catch(console.error);
20 }, []);
21
22 return (
23 <div className="admin-container">
24 <h2>运行日志 & 性能 Dashboard</h2>
TRM-coding85e5c322025-06-18 19:49:21 +080025 <nav className="dashboard-nav">
26 <NavLink to="transactions" className={({ isActive }) => isActive ? 'active' : ''}>
27 事务日志
28 </NavLink>
29 <NavLink to="performance" className={({ isActive }) => isActive ? 'active' : ''}>
30 性能日志
31 </NavLink>
32 </nav>
33
34 {/* nested routes will render here */}
35 <Outlet />
TRM-codingd1cbf672025-06-18 15:15:08 +080036 </div>
37 );
38}
39
40export default LogsDashboard;