mirror of
https://github.com/MBombeck/HealthLog.git
synced 2026-11-14 06:40:50 +00:00
v1.4.34.5 — audit follow-on: critical-path tests + iOS textarea zoom
Follow-on to v1.4.34.4.
Tests:
24 new integration tests across 5 files closing the highest
critical-path gaps the test-coverage audit flagged:
- auth-password-change.test.ts pins the v1.4.34.3+
destroyAllSessions three-transport revocation contract.
- admin-reset-password.test.ts mirrors the same shape for
admin resets.
- withings-oauth.test.ts covers connect / callback / disconnect
+ state-token replay rejection.
- passkey-register.test.ts covers register-options +
register-verify + tampered-attestation + challenge single-use.
- cache-invalidation-coverage.test.ts grids the IW-G
invalidation matrix across 5 write surfaces.
Integration suite: 197/50 → 222/55. tsc + lint clean.
Mobile:
Five textareas no longer trigger iOS Safari zoom-on-focus. The
Coach composer, bug-report description, admin feedback note,
medication-side-effects notes, and medication-intake JSON
import all shipped text-sm (14 px). iOS Safari zooms whenever
an input renders below 16 px. Switched each to
`text-base sm:text-sm` so mobile clears the floor while desktop
keeps the compact look.
This commit is contained in:
1 parent
f5962497d6
commit
9715831f82
12 files changed
+1394
-6
No files matched your search
@@ -501,7 +501,9 @@ function FeedbackDetailDialog({
|
||||
rows={3}
|
||||
maxLength={5000}
|
||||
placeholder={t("admin.feedback.adminNotePlaceholder")}
|
||||
className="border-input bg-background text-foreground placeholder:text-muted-foreground focus-visible:ring-ring w-full rounded-md border px-3 py-2 text-sm focus-visible:ring-2 focus-visible:outline-none"
|
||||
// text-base on mobile so iOS Safari doesn't zoom on
|
||||
// focus; text-sm on sm+ keeps the compact admin look.
|
||||
className="border-input bg-background text-foreground placeholder:text-muted-foreground focus-visible:ring-ring w-full rounded-md border px-3 py-2 text-base focus-visible:ring-2 focus-visible:outline-none sm:text-sm"
|
||||
/>
|
||||
<div className="flex justify-end">
|
||||
<Button
|
||||
|
||||
@@ -208,7 +208,12 @@ export function CoachInput({
|
||||
// `max-h-[9.5rem]`, ≈6 lines at the current line-height).
|
||||
rows={1}
|
||||
className={cn(
|
||||
"w-full resize-none bg-transparent text-sm leading-relaxed outline-none",
|
||||
// `text-base` (16 px) on mobile so iOS Safari does not
|
||||
// zoom-on-focus — the kerned `text-sm` (14 px) trips the
|
||||
// 16 px floor and yanks the viewport on every Coach tap.
|
||||
// Desktop shrinks back to `text-sm` for the compact
|
||||
// composer.
|
||||
"w-full resize-none bg-transparent text-base leading-relaxed outline-none sm:text-sm",
|
||||
"max-h-[9.5rem] overflow-auto",
|
||||
"placeholder:text-muted-foreground disabled:opacity-60",
|
||||
)}
|
||||
|
||||
@@ -474,7 +474,10 @@ export function SideEffectsSection({ medicationId }: SideEffectsSectionProps) {
|
||||
enterKeyHint="done"
|
||||
autoCapitalize="sentences"
|
||||
autoComplete="off"
|
||||
className="border-input bg-background text-foreground w-full rounded-md border px-2 py-1.5 text-sm"
|
||||
// text-base on mobile so iOS Safari doesn't
|
||||
// zoom-on-focus; text-sm on sm+ keeps the compact
|
||||
// notes-row visual.
|
||||
className="border-input bg-background text-foreground w-full rounded-md border px-2 py-1.5 text-base sm:text-sm"
|
||||
/>
|
||||
<p className="text-muted-foreground text-right text-[10px]">
|
||||
{notes.length} / {NOTES_MAX}
|
||||
|
||||
Reference in new issue
Block a user