source: lan-frontend/src/components/ComputerCard.jsx

Last change on this file was 2058e5c, checked in by istevanoska <ilinastevanoska@…>, 6 months ago

Working / before login

  • Property mode set to 100644
File size: 1.5 KB
Line 
1import React from "react";
2
3function dotClass(status) {
4 if (status === "online") return "dot online";
5 if (status === "idle") return "dot idle";
6 return "dot offline";
7}
8
9export default function ComputerCard({ c, onOpen }) {
10 return (
11 <button className="card" onClick={() => onOpen?.(c)}>
12 <div className="card-head">
13 <div className="card-title">{c.name}</div>
14 <div className={dotClass(c.status)} />
15 </div>
16
17 <div className="meta">
18 <div><span className="dim">🏷 Env:</span> {c.env_name || "default"}</div>
19 <div><span className="dim">👤 User:</span> {c.user || "—"}</div>
20 <div><span className="dim">🌐 IP:</span> {c.ip || "—"}</div>
21 <div><span className="dim">💻 OS:</span> {(c.os || "—").slice(0, 60)}</div>
22 <div><span className="dim">⏰ Last:</span> {c.last_seen ? new Date(c.last_seen).toLocaleTimeString() : "—"}</div>
23 <div><span className="dim">🛡 Sysmon:</span> {c.sysmon_available ? "Yes" : "No"} • {c.recent_sysmon ?? 0} events</div>
24 </div>
25
26 <div className="kpis">
27 <div className="kpi">
28 <div className="k">CPU avg</div>
29 <div className="v">{c.avg_cpu ?? 0}%</div>
30 </div>
31 <div className="kpi">
32 <div className="k">RAM avg</div>
33 <div className="v">{c.avg_ram ?? 0}%</div>
34 </div>
35 <div className="kpi">
36 <div className="k">Logs 24h</div>
37 <div className="v">{c.recent_logs ?? 0}</div>
38 </div>
39 </div>
40 </button>
41 );
42}
Note: See TracBrowser for help on using the repository browser.