From a90f178ee0f80b3ce2f6145d8babf2773743c73c Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Fri, 31 Mar 2023 08:44:27 -0700 Subject: [PATCH] Better handle multi-core temp --- src/components/widgets/resources/cputemp.jsx | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/components/widgets/resources/cputemp.jsx b/src/components/widgets/resources/cputemp.jsx index 68e0d71d..22eecb06 100644 --- a/src/components/widgets/resources/cputemp.jsx +++ b/src/components/widgets/resources/cputemp.jsx @@ -5,6 +5,10 @@ import { useTranslation } from "next-i18next"; import UsageBar from "./usage-bar"; +function convertToFahrenheit(t) { + return t * 5/9 + 32 +} + export default function CpuTemp({ expanded, units }) { const { t } = useTranslation(); @@ -23,7 +27,7 @@ export default function CpuTemp({ expanded, units }) { ); } - if (!data) { + if (!data || !data.cputemp) { return (
@@ -43,10 +47,16 @@ export default function CpuTemp({ expanded, units }) { ); } + let minTemp = 0; + let mainTemp = data.cputemp.main; + if (data.cputemp.cores?.length) { + mainTemp = data.cputemp.cores.reduce((a, b) => a + b) / data.cputemp.cores.length; + minTemp = Math.min(...data.cputemp.cores); + } const unit = units === "imperial" ? "fahrenheit" : "celsius"; - const mainTemp = (unit === "celsius") ? data.cputemp.main : data.cputemp.main * 5/9 + 32; - const maxTemp = (unit === "celsius") ? data.cputemp.max : data.cputemp.max * 5/9 + 32; - const percent = Math.round((mainTemp / maxTemp) * 100); + mainTemp = (unit === "celsius") ? mainTemp : convertToFahrenheit(mainTemp); + const maxTemp = (unit === "celsius") ? data.cputemp.max : convertToFahrenheit(data.cputemp.max); + const percent = Math.round(((mainTemp - minTemp) / (maxTemp - minTemp)) * 100); return (