From 19e7a43fe333df123a973f3ca186a028c6f39fb0 Mon Sep 17 00:00:00 2001 From: MacRimi Date: Fri, 17 Oct 2025 19:16:55 +0200 Subject: [PATCH] Update network-metrics.tsx --- AppImage/components/network-metrics.tsx | 362 +++++++++--------------- 1 file changed, 140 insertions(+), 222 deletions(-) diff --git a/AppImage/components/network-metrics.tsx b/AppImage/components/network-metrics.tsx index d09ae60..6ebe940 100644 --- a/AppImage/components/network-metrics.tsx +++ b/AppImage/components/network-metrics.tsx @@ -249,9 +249,54 @@ export function NetworkMetrics() {

+ + + + Firewall Status + + + +
Active
+
+ + Protected + +
+

System protected

+
+
+ + + + Network Health + + + +
+ + {healthStatus} + +
+
+
+ Packet Loss: + 1 ? "text-red-500" : "text-green-500"}`} + > + {avgPacketLoss}% + +
+
+ Errors: + 100 ? "text-red-500" : "text-green-500"}`}> + {totalErrors} + +
+
+
+
- {/* Physical Interfaces */} {networkData.physical_interfaces && networkData.physical_interfaces.length > 0 && ( @@ -269,129 +314,66 @@ export function NetworkMetrics() { const typeBadge = getInterfaceTypeBadge(interface_.type) return ( -
-
setSelectedInterface(interface_)} - > - {/* First row: Icon, Name, Type Badge, Status */} -
- -
-
{interface_.name}
- - {typeBadge.label} - -
- - {interface_.status.toUpperCase()} +
setSelectedInterface(interface_)} + > + {/* First row: Icon, Name, Type Badge, Status */} +
+ +
+
{interface_.name}
+ + {typeBadge.label}
- - {/* Second row: Details - Responsive layout */} -
-
-
IP Address
-
- {interface_.addresses.length > 0 ? interface_.addresses[0].ip : "N/A"} -
-
- -
-
Speed
-
- - {formatSpeed(interface_.speed)} -
-
- -
-
Traffic
-
- ↓ {formatBytes(interface_.bytes_recv)} - {" / "} - ↑ {formatBytes(interface_.bytes_sent)} -
-
- - {interface_.mac_address && ( -
-
MAC
-
- {interface_.mac_address} -
-
- )} -
+ + {interface_.status.toUpperCase()} +
-
setSelectedInterface(interface_)} - > - {/* First row: Icon, Name, Type Badge, Status */} -
- -
-
{interface_.name}
- - {typeBadge.label} - + {/* Second row: Details - Responsive layout */} +
+
+
IP Address
+
+ {interface_.addresses.length > 0 ? interface_.addresses[0].ip : "N/A"}
- - {interface_.status.toUpperCase()} -
- {/* Second row: Details - Responsive layout */} -
-
-
IP Address
-
- {interface_.addresses.length > 0 ? interface_.addresses[0].ip : "N/A"} -
+
+
Speed
+
+ + {formatSpeed(interface_.speed)}
+
-
-
Speed
-
- - {formatSpeed(interface_.speed)} -
+
+
Traffic
+
+ ↓ {formatBytes(interface_.bytes_recv)} + {" / "} + ↑ {formatBytes(interface_.bytes_sent)}
+
+ {interface_.mac_address && (
-
Traffic
-
- ↓ {formatBytes(interface_.bytes_recv)} - {" / "} - ↑ {formatBytes(interface_.bytes_sent)} +
MAC
+
+ {interface_.mac_address}
- - {interface_.mac_address && ( -
-
MAC
-
- {interface_.mac_address} -
-
- )} -
+ )}
) @@ -420,7 +402,7 @@ export function NetworkMetrics() { return (
setSelectedInterface(interface_)} > {/* First row: Icon, Name, Type Badge, Physical Interface (responsive), Status */} @@ -533,131 +515,67 @@ export function NetworkMetrics() { const vmTypeBadge = getVMTypeBadge(interface_.vm_type) return ( -
-
setSelectedInterface(interface_)} - > - {/* First row: Icon, Name, VM/LXC Badge, VM Name, Status */} -
- -
-
{interface_.name}
- - {vmTypeBadge.label} - - {interface_.vm_name && ( -
→ {interface_.vm_name}
- )} -
- - {interface_.status.toUpperCase()} +
setSelectedInterface(interface_)} + > + {/* First row: Icon, Name, VM/LXC Badge, VM Name, Status */} +
+ +
+
{interface_.name}
+ + {vmTypeBadge.label} -
- - {/* Second row: Details - Responsive layout */} -
-
-
VMID
-
{interface_.vmid ?? "N/A"}
-
- -
-
Speed
-
- - {formatSpeed(interface_.speed)} -
-
- -
-
Traffic
-
- ↓ {formatBytes(interface_.bytes_recv)} - {" / "} - ↑ {formatBytes(interface_.bytes_sent)} -
-
- - {interface_.mac_address && ( -
-
MAC
-
- {interface_.mac_address} -
-
+ {interface_.vm_name && ( +
→ {interface_.vm_name}
)}
+ + {interface_.status.toUpperCase()} +
-
setSelectedInterface(interface_)} - > - {/* First row: Icon, Name, VM/LXC Badge, VM Name, Status */} -
- -
-
{interface_.name}
- - {vmTypeBadge.label} - - {interface_.vm_name && ( -
→ {interface_.vm_name}
- )} -
- - {interface_.status.toUpperCase()} - + {/* Second row: Details - Responsive layout */} +
+
+
VMID
+
{interface_.vmid ?? "N/A"}
- {/* Second row: Details - Responsive layout */} -
-
-
VMID
-
{interface_.vmid ?? "N/A"}
+
+
Speed
+
+ + {formatSpeed(interface_.speed)}
+
-
-
Speed
-
- - {formatSpeed(interface_.speed)} -
+
+
Traffic
+
+ ↓ {formatBytes(interface_.bytes_recv)} + {" / "} + ↑ {formatBytes(interface_.bytes_sent)}
+
+ {interface_.mac_address && (
-
Traffic
-
- ↓ {formatBytes(interface_.bytes_recv)} - {" / "} - ↑ {formatBytes(interface_.bytes_sent)} +
MAC
+
+ {interface_.mac_address}
- - {interface_.mac_address && ( -
-
MAC
-
- {interface_.mac_address} -
-
- )} -
+ )}
)