From 3c13dea55ff4b13e7261f9f8e6d568800ac7a8b9 Mon Sep 17 00:00:00 2001 From: MacRimi Date: Wed, 15 Oct 2025 17:54:04 +0200 Subject: [PATCH] Update hardware.tsx --- AppImage/components/hardware.tsx | 131 ++++++++++++++++++------------- 1 file changed, 75 insertions(+), 56 deletions(-) diff --git a/AppImage/components/hardware.tsx b/AppImage/components/hardware.tsx index e5a584e..b584017 100644 --- a/AppImage/components/hardware.tsx +++ b/AppImage/components/hardware.tsx @@ -674,6 +674,7 @@ export default function Hardware() { ) })} +

Click on a device for detailed hardware information

)} @@ -1035,6 +1036,7 @@ export default function Hardware() { ))} +

Click on a device for detailed hardware information

)} @@ -1144,41 +1146,6 @@ export default function Hardware() { )} - {/* Fans */} - {hardwareData?.fans && hardwareData.fans.length > 0 && ( - -
- -

System Fans

- - {hardwareData.fans.length} fans - -
- -
- {hardwareData.fans.map((fan, index) => { - const isPercentage = fan.unit === "percent" || fan.unit === "%" - const percentage = isPercentage ? fan.speed : Math.min((fan.speed / 5000) * 100, 100) - - return ( -
-
- {fan.name} - - {isPercentage ? `${fan.speed.toFixed(0)} percent` : `${fan.speed.toFixed(0)} ${fan.unit}`} - -
-
-
-
- {fan.adapter && {fan.adapter}} -
- ) - })} -
- - )} - {/* UPS */} {hardwareData?.ups && Array.isArray(hardwareData.ups) && hardwareData.ups.length > 0 && ( @@ -1263,6 +1230,7 @@ export default function Hardware() { ) })}
+

Click on a device for detailed hardware information

)} @@ -1461,6 +1429,41 @@ export default function Hardware() { + {/* Fans */} + {hardwareData?.fans && hardwareData.fans.length > 0 && ( + +
+ +

System Fans

+ + {hardwareData.fans.length} fans + +
+ +
+ {hardwareData.fans.map((fan, index) => { + const isPercentage = fan.unit === "percent" || fan.unit === "%" + const percentage = isPercentage ? fan.speed : Math.min((fan.speed / 5000) * 100, 100) + + return ( +
+
+ {fan.name} + + {isPercentage ? `${fan.speed.toFixed(0)} percent` : `${fan.speed.toFixed(0)} ${fan.unit}`} + +
+
+
+
+ {fan.adapter && {fan.adapter}} +
+ ) + })} +
+ + )} + {/* Network Summary - Clickable */} {hardwareData?.pci_devices && hardwareData.pci_devices.filter((d) => d.type.toLowerCase().includes("network")).length > 0 && ( @@ -1559,29 +1562,45 @@ export default function Hardware() {
- {hardwareData.storage_devices.map((device, index) => ( -
setSelectedDisk(device)} - className="cursor-pointer rounded-lg border border-border/30 bg-background/50 p-3 transition-colors hover:bg-background/80" - > -
- {device.name} - - {device.type} - + {hardwareData.storage_devices.map((device, index) => { + const getDiskTypeBadgeColor = (type: string) => { + const lowerType = type.toLowerCase() + if (lowerType.includes("nvme")) { + return "bg-purple-500/10 text-purple-500 border-purple-500/20" + } + if (lowerType.includes("ssd")) { + return "bg-cyan-500/10 text-cyan-500 border-cyan-500/20" + } + if (lowerType.includes("hdd")) { + return "bg-blue-500/10 text-blue-500 border-blue-500/20" + } + return "bg-gray-500/10 text-gray-500 border-gray-500/20" + } + + return ( +
setSelectedDisk(device)} + className="cursor-pointer rounded-lg border border-border/30 bg-background/50 p-3 transition-colors hover:bg-background/80" + > +
+ {device.name} + + {device.type} + +
+ {device.size &&

{formatMemory(device.size)}

} + {device.model && ( +

{device.model}

+ )} + {device.driver && ( +

Driver: {device.driver}

+ )}
- {device.size &&

{formatMemory(device.size)}

} - {device.model && ( -

{device.model}

- )} - {device.driver && ( -

Driver: {device.driver}

- )} -
- ))} + ) + })}
-

Click on a device for detailed hardware information

+

Click on a storage device for detailed information

)}