Files
tessera-ctl/.planning/quick/260630-user-settings-bugfix/PLAN.md
T
schalli 2869da83c0 chore: planning artifacts + mcp.json update
- .mcp.json: Playwright MCP config
- 08-UAT.md: Phase 8 UAT results
- quick task summaries: 260630 user-settings, 260701 calendar domain

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-02 08:57:44 +02:00

38 lines
1.7 KiB
Markdown

---
slug: user-settings-bugfix
date: 2026-06-30
status: in-progress
---
# User Settings Bug Fixes
Fix two bugs found during Playwright verification of the account settings page.
## Bug 1: Stale password error message
**Problem:** After a failed password submit (e.g. wrong current password), the error message stays visible while the user types new values. It only disappears on the next submit.
**Fix:** Add `onChange` handlers to all three password inputs in `account-settings-form.tsx` that clear `pwError` and `pwMismatch` state when the user starts typing.
**File:** `apps/web/src/components/settings/account-settings-form.tsx`
## Bug 2: Header avatar no live update
**Problem:** After successful avatar upload, the avatar in the account settings form updates immediately, but the small header avatar (top-right) still shows the "A" initial until page reload. The header reads `user.hasAvatar` from the Zustand auth store, which is never updated after upload.
**Fix:**
1. Add `avatarVersion: number` and `bumpAvatarVersion: () => void` to `auth-store.ts`
2. In `account-settings-form.tsx`: after successful upload, call `bumpAvatarVersion()` AND update `user.hasAvatar = true` in the store via `setUser`
3. In `header.tsx`: use `avatarVersion` from the store as a cache-busting query param on the avatar img src
**Files:**
- `apps/web/src/lib/stores/auth-store.ts`
- `apps/web/src/components/settings/account-settings-form.tsx`
- `apps/web/src/components/layout/header.tsx`
## Tasks
- [ ] auth-store: add avatarVersion + bumpAvatarVersion
- [ ] account-settings-form: clear errors on input change; call bumpAvatarVersion + update store hasAvatar on upload success
- [ ] header: use avatarVersion as cache-busting param in avatar img src