From c98d07effd45c31c420da15b57aff460e3648495 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Bombeck?= Date: Sat, 16 May 2026 17:15:26 +0200 Subject: [PATCH] fix(settings): F13 username readability, F14 mobile bottom-nav padding, Mood Log overflow MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Three closely-related polish fixes from the v1.4.33 audit: * `/settings/account` username field flips `disabled` to `readOnly`. The disabled state inherits `opacity-50` from the `` primitive, which on Marc's mobile pass read identically to placeholder text and made the field look empty. `readOnly` keeps the full-contrast value rendering while still preventing edits. * `` main column reserves a 96 px bottom gutter on ` --- messages/de.json | 3 -- messages/en.json | 1 + messages/es.json | 1 + messages/fr.json | 1 + messages/it.json | 1 + messages/pl.json | 1 + src/components/settings/account-section.tsx | 9 ++++- .../settings/integrations-section.tsx | 37 ++++++++++++++----- src/components/settings/settings-shell.tsx | 13 ++++++- 9 files changed, 52 insertions(+), 15 deletions(-) diff --git a/messages/de.json b/messages/de.json index 689eb18a4..1b6ba832a 100644 --- a/messages/de.json +++ b/messages/de.json @@ -1617,9 +1617,6 @@ "about": { "title": "Über", "description": "Version, Lizenz, Links." - }, - "placeholder": { - "coming_soon": "Wird mit dem nächsten Release-Update hierher umziehen." } }, "profile": "Profil", diff --git a/messages/en.json b/messages/en.json index eb6081666..634dfc87e 100644 --- a/messages/en.json +++ b/messages/en.json @@ -259,6 +259,7 @@ "emptyTitle": "Your dashboard is empty", "emptyDescription": "Log your first measurement or mood entry. Tiles and charts appear automatically as data lands.", "emptyAddMeasurement": "Add your first measurement", + "staleHint": "Last reading {count} d ago", "recentWorkouts": { "title": "Recent workouts", "viewAll": "View all", diff --git a/messages/es.json b/messages/es.json index 8774fdf7e..1fef14559 100644 --- a/messages/es.json +++ b/messages/es.json @@ -1898,6 +1898,7 @@ "moodLogWebhookSecretHelp": "Enter this secret in moodLog as webhook secret", "moodLogSync": "Start sync", "moodLogFullSync": "Full sync", + "moodLogFullSyncConfirm": "Synchronize fully", "moodLogFullSyncTitle": "Full sync?", "moodLogFullSyncDescription": "All available mood data will be fully synchronized.", "moodLogDisconnect": "Disconnect", diff --git a/messages/fr.json b/messages/fr.json index 60481947c..d381b15ea 100644 --- a/messages/fr.json +++ b/messages/fr.json @@ -1898,6 +1898,7 @@ "moodLogWebhookSecretHelp": "Enter this secret in moodLog as webhook secret", "moodLogSync": "Start sync", "moodLogFullSync": "Full sync", + "moodLogFullSyncConfirm": "Synchronize fully", "moodLogFullSyncTitle": "Full sync?", "moodLogFullSyncDescription": "All available mood data will be fully synchronized.", "moodLogDisconnect": "Disconnect", diff --git a/messages/it.json b/messages/it.json index 08b458dc5..8869bc24e 100644 --- a/messages/it.json +++ b/messages/it.json @@ -1898,6 +1898,7 @@ "moodLogWebhookSecretHelp": "Enter this secret in moodLog as webhook secret", "moodLogSync": "Start sync", "moodLogFullSync": "Full sync", + "moodLogFullSyncConfirm": "Synchronize fully", "moodLogFullSyncTitle": "Full sync?", "moodLogFullSyncDescription": "All available mood data will be fully synchronized.", "moodLogDisconnect": "Disconnect", diff --git a/messages/pl.json b/messages/pl.json index 3eecc932e..a3dcdd6cf 100644 --- a/messages/pl.json +++ b/messages/pl.json @@ -1898,6 +1898,7 @@ "moodLogWebhookSecretHelp": "Enter this secret in moodLog as webhook secret", "moodLogSync": "Start sync", "moodLogFullSync": "Full sync", + "moodLogFullSyncConfirm": "Synchronize fully", "moodLogFullSyncTitle": "Full sync?", "moodLogFullSyncDescription": "All available mood data will be fully synchronized.", "moodLogDisconnect": "Disconnect", diff --git a/src/components/settings/account-section.tsx b/src/components/settings/account-section.tsx index 5f9898597..ba833ad58 100644 --- a/src/components/settings/account-section.tsx +++ b/src/components/settings/account-section.tsx @@ -351,10 +351,17 @@ export function AccountSection() {
+ {/* v1.4.33 F13 — `disabled` adds `opacity-50` to the input + primitive, which the maintainer's mobile pass read as + "empty placeholder text" because the username then + matches the muted-foreground colour exactly. Username + changes still aren't allowed, but `readOnly` keeps the + text crisp (full contrast) so it reads as a value, not + a hint. */}
diff --git a/src/components/settings/integrations-section.tsx b/src/components/settings/integrations-section.tsx index 3518bace0..e3a3a7067 100644 --- a/src/components/settings/integrations-section.tsx +++ b/src/components/settings/integrations-section.tsx @@ -753,7 +753,16 @@ function MoodLogCard({ enterKeyHint="done" />
-
+ {/* v1.4.33 — save-button placement contract: + right-aligned primary `Speichern` with the secondary + `Verbindung testen` immediately to its left. Mood Log + used to left-align its row, which was the only + integration form that did. */} +
+ -
@@ -777,12 +782,18 @@ function MoodLogCard({ -
+ {/* v1.4.33 — the webhook secret is a long hex string; + on a 393 CSS px viewport the input + Copy button + used to push past the card edge and trigger a body + horizontal scroll. Stack vertically on `
-
+ {/* v1.4.33 — the Sync / Voll-Sync / Trennen triplet + overflowed the card edge on a 393 CSS px viewport + (~376 px of buttons + gaps inside 345 px of inner + width). Match the Withings card pattern: `flex-wrap` + + `min-w-[10rem]` on `
);