From 2c0f0bbdd3a3411fdb4402b2a07f1ddd7aeb83cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zachary=20Gu=C3=A9not?= Date: Sat, 12 Sep 2026 15:57:55 +0200 Subject: [PATCH] fix(widgets): omit packet loss when the cloud did not measure it Co-Authored-By: Claude Opus 5 --- packages/translation/src/lang/en.json | 1 + .../src/unifi-site-manager/component.tsx | 23 +++++++++++++------ 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/packages/translation/src/lang/en.json b/packages/translation/src/lang/en.json index c769845f0..936301381 100644 --- a/packages/translation/src/lang/en.json +++ b/packages/translation/src/lang/en.json @@ -5824,6 +5824,7 @@ "unknown": "not reported" }, "latency": "{value} ms · {loss} % loss", + "latencyOnly": "{value} ms", "devicesOnline": "{online} / {total}", "consoleUpdateAvailable": "Update available", "consoleUpToDate": "Up to date", diff --git a/packages/widgets/src/unifi-site-manager/component.tsx b/packages/widgets/src/unifi-site-manager/component.tsx index d56b37f8f..aabc67386 100644 --- a/packages/widgets/src/unifi-site-manager/component.tsx +++ b/packages/widgets/src/unifi-site-manager/component.tsx @@ -56,13 +56,22 @@ export default function UnifiSiteManagerWidget({ accessor: "latencyMs", title: t("widget.unifiSiteManager.column.latency"), sortable: true, - render: (site) => - site.latencyMs === null - ? EMPTY_VALUE - : t("widget.unifiSiteManager.latency", { - value: `${site.latencyMs}`, - loss: `${site.packetLossPct ?? 0}`, - }), + render: (site) => { + if (site.latencyMs === null) return EMPTY_VALUE; + + // Le cloud rapporte la latence et la perte de paquets indépendamment : + // une période mesurée pour l'une peut ne pas l'être pour l'autre. Un 0 + // par défaut affirmerait à tort une perte mesurée à zéro, alors qu'elle + // n'a simplement pas été relevée sur cette période. + if (site.packetLossPct === null) { + return t("widget.unifiSiteManager.latencyOnly", { value: `${site.latencyMs}` }); + } + + return t("widget.unifiSiteManager.latency", { + value: `${site.latencyMs}`, + loss: `${site.packetLossPct}`, + }); + }, }, ...(options.showIsp && !isNarrow ? [