fix(headers): keep list-page header actions on one row on mobile

The medications header used flex-wrap, so its action group (take-all
+ customize wrench + Add) dropped to a second row below the title on
narrow viewports. Drop the wrap and let the title block shrink: title
div gets min-w-0, subtitle truncates, action group keeps shrink-0 —
the wrench and Add stay top-right inline with the heading.

The mood, measurements and dashboard headers shared the same latent
root cause (title div missing min-w-0, subtitle/greeting not
truncating, action group not shrink-0). Apply the same minimal guard
so none of them can wrap or compress the actions either.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Marc-André BombeckandClaude Opus 4.8 committed 2026-06-14 10:52:39 +02:00
1 parent 4111124f24
commit b7b160d4fa
4 files changed
+11 -11

No files matched your search

+3 -3
View File
@@ -109,18 +109,18 @@ export default function MeasurementsPage() {
<div className="space-y-6">
<PullToRefreshIndicator {...pull} />
<div className="flex items-center justify-between">
<div>
<div className="min-w-0">
<h1 className="text-2xl font-bold tracking-tight">
{t("measurements.title")}
</h1>
{/* v1.4.34 IW-G — subtitle now stays visible on mobile so
the H1 isn't an unframed label. `text-xs sm:text-sm`
preserves the desktop hierarchy. */}
<p className="text-muted-foreground text-xs sm:text-sm">
<p className="text-muted-foreground truncate text-xs sm:text-sm">
{t("measurements.subtitle")}
</p>
</div>
<Button onClick={() => setDialogOpen(true)}>
<Button className="shrink-0" onClick={() => setDialogOpen(true)}>
<Plus className="h-4 w-4" />
{t("measurements.addMeasurement")}
</Button>
+3 -3
View File
@@ -326,14 +326,14 @@ export default function MedicationsPage() {
return (
<div className="space-y-6">
<div className="flex flex-wrap items-start justify-between gap-3">
<div className="space-y-1">
<div className="flex items-start justify-between gap-3">
<div className="min-w-0 space-y-1">
<h1 className="text-2xl font-bold tracking-tight">
{t("medications.title")}
</h1>
{/* v1.4.34 IW-G — subtitle stays visible on mobile so the
H1 isn't an unframed label. */}
<p className="text-muted-foreground text-xs sm:text-sm">
<p className="text-muted-foreground truncate text-xs sm:text-sm">
{t("medications.subtitle")}
</p>
</div>
+2 -2
View File
@@ -64,13 +64,13 @@ export default function MoodPage() {
<div className="space-y-6">
<PullToRefreshIndicator {...pull} />
<div className="flex items-center justify-between">
<div>
<div className="min-w-0">
<h1 className="text-2xl font-bold tracking-tight">
{t("mood.title")}
</h1>
{/* v1.4.34 IW-G — subtitle stays visible on mobile so the
H1 isn't an unframed label. */}
<p className="text-muted-foreground text-xs sm:text-sm">
<p className="text-muted-foreground truncate text-xs sm:text-sm">
{t("mood.subtitle")}
</p>
</div>