fix(integrations): surface the WHOOP dual-source vitals caveat on the connect card

When WHOOP and another source both supply a standard vital (resting heart
rate, blood oxygen, body temperature, respiratory rate, sleep stages), both
values can appear until a future update settles on a single preferred source.
Show this as a calm muted note on the WHOOP card so the known limitation reads
as documented behaviour rather than a bug. New whoopOverlapNote key across all
six locales.
This commit is contained in:
Marc-André Bombeck committed 2026-06-04 04:10:16 +02:00
1 parent 7246aa2823
commit cd3982a35c
7 files changed
+9

No files matched your search

+1
View File
@@ -3380,6 +3380,7 @@
"withingsNoCredentials": "Bitte zuerst die API-Zugangsdaten oben eingeben, um Withings zu verbinden.",
"whoop": "WHOOP",
"whoopDescription": "Verbinde dein WHOOP-Band, um Erholung, Schlaf, Belastung und Workouts zu synchronisieren.",
"whoopOverlapNote": "Wenn WHOOP und eine weitere Quelle denselben Vitalwert liefern – Ruhepuls, Blutsauerstoff, Körpertemperatur, Atemfrequenz oder Schlafphasen –, können beide Werte angezeigt werden, bis sich ein künftiges Update auf eine bevorzugte Quelle festlegt.",
"whoopCredentials": "API-Zugangsdaten",
"whoopCredentialsHelp": "Registriere deine eigene WHOOP-Entwickler-App und füge hier Client ID und Client Secret ein.",
"whoopClientId": "Client ID",
+1
View File
@@ -3380,6 +3380,7 @@
"withingsNoCredentials": "Please enter your API credentials above to connect Withings.",
"whoop": "WHOOP",
"whoopDescription": "Connect your WHOOP strap to sync recovery, sleep, strain and workouts.",
"whoopOverlapNote": "If WHOOP and another source both supply a vital — resting heart rate, blood oxygen, body temperature, respiratory rate or sleep stages — you may see both values until a future update settles on a single preferred source.",
"whoopCredentials": "API Credentials",
"whoopCredentialsHelp": "Register your own WHOOP developer app and paste its Client ID and Client Secret here.",
"whoopClientId": "Client ID",
+1
View File
@@ -3380,6 +3380,7 @@
"withingsNoCredentials": "Please enter your API credentials above to connect Withings.",
"whoop": "WHOOP",
"whoopDescription": "Conecta tu banda WHOOP para sincronizar recuperación, sueño, esfuerzo y entrenamientos.",
"whoopOverlapNote": "Si WHOOP y otra fuente proporcionan el mismo valor vital —frecuencia cardíaca en reposo, oxígeno en sangre, temperatura corporal, frecuencia respiratoria o fases del sueño—, es posible que veas ambos valores hasta que una futura actualización elija una única fuente preferida.",
"whoopCredentials": "Credenciales de API",
"whoopCredentialsHelp": "Registra tu propia app de desarrollador de WHOOP y pega aquí su Client ID y Client Secret.",
"whoopClientId": "Client ID",
+1
View File
@@ -3380,6 +3380,7 @@
"withingsNoCredentials": "Please enter your API credentials above to connect Withings.",
"whoop": "WHOOP",
"whoopDescription": "Connectez votre bracelet WHOOP pour synchroniser récupération, sommeil, effort et entraînements.",
"whoopOverlapNote": "Si WHOOP et une autre source fournissent la même donnée vitale — fréquence cardiaque au repos, oxygène sanguin, température corporelle, fréquence respiratoire ou phases de sommeil —, les deux valeurs peuvent apparaître jusqu'à ce qu'une future mise à jour retienne une seule source préférée.",
"whoopCredentials": "Identifiants API",
"whoopCredentialsHelp": "Enregistrez votre propre application développeur WHOOP et collez ici son Client ID et son Client Secret.",
"whoopClientId": "Client ID",
+1
View File
@@ -3380,6 +3380,7 @@
"withingsNoCredentials": "Please enter your API credentials above to connect Withings.",
"whoop": "WHOOP",
"whoopDescription": "Collega la tua fascia WHOOP per sincronizzare recupero, sonno, sforzo e allenamenti.",
"whoopOverlapNote": "Se WHOOP e un'altra fonte forniscono lo stesso valore vitale — frequenza cardiaca a riposo, ossigeno nel sangue, temperatura corporea, frequenza respiratoria o fasi del sonno —, potresti vedere entrambi i valori finché un futuro aggiornamento non sceglierà un'unica fonte preferita.",
"whoopCredentials": "Credenziali API",
"whoopCredentialsHelp": "Registra la tua app sviluppatore WHOOP e incolla qui il suo Client ID e Client Secret.",
"whoopClientId": "Client ID",
+1
View File
@@ -3380,6 +3380,7 @@
"withingsNoCredentials": "Please enter your API credentials above to connect Withings.",
"whoop": "WHOOP",
"whoopDescription": "Połącz opaskę WHOOP, aby synchronizować regenerację, sen, obciążenie i treningi.",
"whoopOverlapNote": "Jeśli WHOOP i inne źródło dostarczają tę samą wartość życiową — tętno spoczynkowe, saturację, temperaturę ciała, częstość oddechów lub fazy snu — możesz widzieć obie wartości, dopóki przyszła aktualizacja nie wybierze jednego preferowanego źródła.",
"whoopCredentials": "Dane API",
"whoopCredentialsHelp": "Zarejestruj własną aplikację deweloperską WHOOP i wklej tutaj jej Client ID oraz Client Secret.",
"whoopClientId": "Client ID",
@@ -840,6 +840,9 @@ function WhoopCard({
<p className="text-muted-foreground mt-1 text-xs">
{t("settings.whoopDescription")}
</p>
<p className="text-muted-foreground/80 mt-2 text-xs">
{t("settings.whoopOverlapNote")}
</p>
<hr
data-testid="integration-card-divider"