BillTracker/client/components/tracker
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
..
AutopaySuggestionActions.tsx refactor(ts): convert tracker dialogs + cards to TSX (B3) 2026-07-04 19:29:42 -05:00
CashFlowCard.tsx refactor(brand): adopt new primitives in tracker cards 2026-07-05 17:18:49 -05:00
DriftInsightPanel.tsx feat(tracker): persist Overdue/Drift panel collapse + inline hide 2026-07-06 10:34:39 -05:00
FilterChip.tsx refactor(ts): convert tracker leaf components to TSX (B1) 2026-07-03 22:31:35 -05:00
LowerThisMonthButton.tsx refactor(ts): convert all UI primitives + ThemeContext to TSX (B2) 2026-07-03 22:57:22 -05:00
MobileTrackerRow.tsx feat(tracker): a11y live regions + keyboard-shortcut hint (plan D/C5) 2026-07-05 15:00:16 -05:00
NotesCell.tsx refactor(ts): convert all UI primitives + ThemeContext to TSX (B2) 2026-07-03 22:57:22 -05:00
OverdueCommandCenter.tsx feat(tracker): persist Overdue/Drift panel collapse + inline hide 2026-07-06 10:34:39 -05:00
PaymentLedgerDialog.tsx fix(money): manual payment path flags suspected dupes (409) w/o losing legit ones (Track A) 2026-07-05 11:51:06 -05:00
PaymentModal.tsx refactor(ts): convert tracker dialogs + cards to TSX (B3) 2026-07-04 19:29:42 -05:00
PaymentProgress.tsx refactor(ts): convert tracker leaf components to TSX (B1) 2026-07-03 22:31:35 -05:00
StartingAmountsEditDialog.tsx refactor(ts): convert tracker dialogs + cards to TSX (B3) 2026-07-04 19:29:42 -05:00
StatusBadge.tsx refactor(ts): convert tracker leaf components to TSX (B1) 2026-07-03 22:31:35 -05:00
SummaryCards.tsx refactor(brand): adopt new primitives in tracker cards 2026-07-05 17:18:49 -05:00
TrackerBucket.tsx refactor(brand): adopt new primitives in tracker cards 2026-07-05 17:18:49 -05:00
TrackerRow.tsx feat(tracker): a11y live regions + keyboard-shortcut hint (plan D/C5) 2026-07-05 15:00:16 -05:00