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 ? [