BillTracker/client
null 343cc3a36f feat(tracker): persist Overdue/Drift panel collapse + inline hide
The Overdue Command Center and Price-Change (drift) panels reset to
expanded on every load — their collapse arrows used local useState. Now
the collapsed state is remembered per-user via two new settings
(tracker_overdue_collapsed / tracker_drift_collapsed), mirroring the
search panel's useSearchPanelPreference pattern. Each panel header also
gains an inline "Hide" control (EyeOff, like the search panel) that writes
the existing tracker_show_* setting and fires an Undo toast; hidden
sections come back from Settings → Tracker Layout.

- services/userSettings.js: allowlist + defaults for the two collapse keys
- TrackerPage: read collapse state, hide handlers with Undo, wire props
- OverdueCommandCenter/DriftInsightPanel: controlled collapse + header hide

Verified: typecheck 0, lint 0 errors, build, and a live settings round-trip
(collapse persists, hide writes, Undo restores, allowlist rejects junk keys).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-06 10:34:39 -05:00
..
components feat(tracker): persist Overdue/Drift panel collapse + inline hide 2026-07-06 10:34:39 -05:00
contexts refactor(brand): wire brand + new primitives through layout chrome 2026-07-05 17:18:31 -05:00
hooks refactor(tracker): move settings/simplefin onto React Query + defer search (plan B) 2026-07-05 14:43:13 -05:00
lib feat(brand): BrandMark/Wordmark/Lockup consume the new SVGs 2026-07-05 17:50:04 -05:00
pages feat(tracker): persist Overdue/Drift panel collapse + inline hide 2026-07-06 10:34:39 -05:00
public feat(brand): SVG lockups + mark + social preview assets 2026-07-05 17:49:55 -05:00
App.tsx refactor(brand): adopt new primitives in pages 2026-07-05 17:18:56 -05:00
api.ts refactor: remove verified dead code — orphan file, dead HOC, unused api wrappers 2026-07-05 17:21:31 -05:00
index.css refactor(brand): wire brand + new primitives through layout chrome 2026-07-05 17:18:31 -05:00
main.tsx feat(settings): theme "System" + reduce-motion (plan Tier 1) 2026-07-05 15:50:37 -05:00
types.ts refactor(ts): move User to @/types + type auth endpoints; add code to 500 (Track C/D) 2026-07-05 12:26:11 -05:00