Fix drive usage display and center status icon

This commit is contained in:
2025-08-13 01:24:35 -06:00
parent 3cae0331ca
commit 7a48fc2a28
2 changed files with 41 additions and 19 deletions

View File

@@ -283,13 +283,33 @@ export default function DeviceDetails({ device, onBack }) {
}; };
const renderStorage = () => { const renderStorage = () => {
const rows = (details.storage || []).map((d) => ({ const parseNum = (val) => {
if (val === undefined || val === null) return undefined;
const n = Number(String(val).replace(/[^0-9.]/g, ""));
return Number.isNaN(n) ? undefined : n;
};
const rows = (details.storage || []).map((d) => {
const total = parseNum(d.total);
const rawFree = parseNum(d.free);
const freePct = rawFree !== undefined
? rawFree <= 100
? rawFree
: total
? (rawFree / total) * 100
: undefined
: undefined;
let usage = parseNum(d.usage);
if ((usage === undefined || Number.isNaN(usage)) && freePct !== undefined) {
usage = 100 - freePct;
}
return {
drive: d.drive, drive: d.drive,
disk_type: d.disk_type, disk_type: d.disk_type,
usage: d.usage !== undefined ? Number(d.usage) : undefined, usage,
total: d.total !== undefined ? Number(d.total) : undefined, total,
free: d.free !== undefined ? Number(d.free) : undefined, free: freePct,
})); };
});
if (!rows.length) if (!rows.length)
return placeholderTable(["Drive Letter", "Disk Type", "Usage", "Total Size", "Free %"]); return placeholderTable(["Drive Letter", "Disk Type", "Usage", "Total Size", "Free %"]);
return ( return (

View File

@@ -172,18 +172,20 @@ export default function DeviceList({ onSelectDevice }) {
sx={{ cursor: onSelectDevice ? "pointer" : "default" }} sx={{ cursor: onSelectDevice ? "pointer" : "default" }}
> >
<TableCell> <TableCell>
<span <Box sx={{ display: "flex", alignItems: "center" }}>
style={{ <Box
component="span"
sx={{
display: "inline-block", display: "inline-block",
width: 10, width: 10,
height: 10, height: 10,
borderRadius: 10, borderRadius: 10,
background: statusColor(r.status), bgcolor: statusColor(r.status),
marginRight: 8, mr: 1,
verticalAlign: "middle"
}} }}
/> />
{r.status} {r.status}
</Box>
</TableCell> </TableCell>
<TableCell>{r.hostname}</TableCell> <TableCell>{r.hostname}</TableCell>
<TableCell>{timeSince(r.lastSeen)}</TableCell> <TableCell>{timeSince(r.lastSeen)}</TableCell>