diff --git a/AppImage/components/system-overview.tsx b/AppImage/components/system-overview.tsx
index ab853f9..a7b03de 100644
--- a/AppImage/components/system-overview.tsx
+++ b/AppImage/components/system-overview.tsx
@@ -63,6 +63,20 @@ interface NetworkData {
packets_sent: number
packets_recv: number
}
+ physical_active_count?: number
+ physical_total_count?: number
+ bridge_active_count?: number
+ bridge_total_count?: number
+ physical_interfaces?: Array<{
+ name: string
+ status: string
+ addresses: Array<{ ip: string; netmask: string }>
+ }>
+ bridge_interfaces?: Array<{
+ name: string
+ status: string
+ addresses: Array<{ ip: string; netmask: string }>
+ }>
}
interface ProxmoxStorageData {
@@ -288,7 +302,7 @@ export function SystemOverview() {
}
fetchNetwork()
- const networkInterval = setInterval(fetchNetwork, 15000)
+ const networkInterval = setInterval(fetchNetwork, 60000)
return () => {
clearInterval(networkInterval)
@@ -530,9 +544,24 @@ export function SystemOverview() {
Active Interfaces:
- {networkData.interfaces.filter((i) => i.status === "up").length}
+ {(networkData.physical_active_count || 0) + (networkData.bridge_active_count || 0)}
+
+ {(() => {
+ const primaryInterface =
+ networkData.physical_interfaces?.find((i) => i.status === "up") ||
+ networkData.bridge_interfaces?.find((i) => i.status === "up") ||
+ networkData.interfaces.find((i) => i.status === "up")
+
+ return primaryInterface ? (
+
+ Primary Interface:
+ {primaryInterface.name}
+
+ ) : null
+ })()}
+
Data Sent:
@@ -545,22 +574,49 @@ export function SystemOverview() {
{(networkData.traffic.bytes_recv / 1024 ** 3).toFixed(2)} GB
+
- {networkData.interfaces.slice(0, 3).map((iface) => (
-
- {iface.name}:
-
- {iface.status}
-
-
- ))}
+ {networkData.physical_interfaces && networkData.physical_interfaces.length > 0 && (
+ <>
+
Physical Interfaces
+ {networkData.physical_interfaces.slice(0, 2).map((iface) => (
+
+ {iface.name}:
+
+ {iface.status}
+
+
+ ))}
+ >
+ )}
+
+ {networkData.bridge_interfaces && networkData.bridge_interfaces.length > 0 && (
+ <>
+
Bridge Interfaces
+ {networkData.bridge_interfaces.slice(0, 2).map((iface) => (
+
+ {iface.name}:
+
+ {iface.status}
+
+
+ ))}
+ >
+ )}
) : (