BillTracker/client/pages
null d9a441dff6 feat(settings): auto-save preferences with live save status (batch 0.39.0)
Replace all Save buttons on the Settings page with debounced auto-save:

- useAutoSave hook: debounce with latest-payload-wins, flush() for blur,
  pending-edit flush on unmount, status machine (idle/saving/saved/error)
  with saved fading back to idle. Covered by 6 Vitest tests (fake timers).
- SaveStatus pill (framer-motion) in the page header and notification card
  headers — Saving…/Saved/Save failed.
- Timing per control: toggles/selects/channel ~150-400ms; typed inputs
  (email, URLs, grace period, drift pct) 900ms + flush on blur.
- Push token never auto-saves mid-type: saves on blur only, so a partial
  token can never overwrite a working one.
- Notification cards no longer refetch parent settings on save (would
  clobber in-flight edits under auto-save).
- Decision: no undo toast — settings are non-destructive and instantly
  re-editable; undo would add noise without safety.
- vitest include now picks up .jsx tests; jsdom + @testing-library/react
  added as devDependencies.
2026-06-12 02:08:42 -05:00
..
AboutPage.jsx chore(cleanup): remove legacy/public HTML files, retire /legacy route, update docs and About page 2026-06-11 23:50:27 -05:00
AdminPage.jsx fix(admin): admin/profile routes and services 2026-06-07 21:18:02 -05:00
AnalyticsPage.jsx style: global readability/theme pass 2026-05-28 23:18:14 -05:00
BillsPage.jsx feat: framer-motion page transitions and UI polish 2026-06-07 15:14:09 -05:00
CalendarPage.jsx fix(ui): calendar settings improvements 2026-06-07 16:52:50 -05:00
CategoriesPage.jsx feat: framer-motion page transitions and UI polish 2026-06-07 15:14:09 -05:00
DataPage.jsx feat: admin UX cleanup, bills page reordering, subscriptions page cadence sort + in-place edits, summary polish 2026-06-06 23:53:53 -05:00
HealthPage.jsx style: global readability/theme pass 2026-05-28 23:18:14 -05:00
LoginPage.jsx feat: TOTP 2FA for login & profile setup flow 2026-06-04 04:10:14 -05:00
NotFoundPage.jsx feat: merge pipeline workflow into bill-tracker (batch v0.36.0) 2026-06-03 20:28:37 -05:00
PayoffPage.jsx feat: framer-motion page transitions and UI polish 2026-06-07 15:14:09 -05:00
PrivacyPage.jsx v0.28.0 2026-05-15 22:45:38 -05:00
ProfilePage.jsx feat(settings): auto-save preferences with live save status (batch 0.39.0) 2026-06-12 02:08:42 -05:00
ReleaseNotesPage.jsx v0.28.0 2026-05-15 22:45:38 -05:00
RoadmapPage.jsx feat: framer-motion page transitions and UI polish 2026-06-07 15:14:09 -05:00
SettingsPage.jsx feat(settings): auto-save preferences with live save status (batch 0.39.0) 2026-06-12 02:08:42 -05:00
SnowballPage.jsx fix(snowball): plan history and bill modal updates 2026-06-07 19:13:16 -05:00
SpendingPage.jsx feat: copy last month budgets, monthly income section on summary page 2026-06-04 21:57:42 -05:00
StatusPage.jsx feat: Payoff Custom mode, Summary reordering, unifed billing schedule, SimpleFIN + backup fixes (batch v0.34.1.3) 2026-05-30 21:20:51 -05:00
SubscriptionCatalogPage.jsx feat: dedicated subscription catalog page, evidence badges, price display in recommendations 2026-06-06 20:44:54 -05:00
SubscriptionsPage.jsx fix(utils): extract localDateString to shared lib, replace .toISOString().slice() pattern across client 2026-06-11 23:40:22 -05:00
SummaryPage.jsx feat: framer-motion page transitions and UI polish 2026-06-07 15:14:09 -05:00
TrackerPage.jsx feat(settings): safe-to-spend toggle, move notifications from Profile to Settings, fix dark-mode readability 2026-06-12 01:52:48 -05:00