BillTracker/client/components/ui
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
..
Skeleton.jsx chore: shadcn/ui component updates (batch) 2026-06-07 14:29:09 -05:00
alert-dialog.jsx fix(snowball): plan history and bill modal updates 2026-06-07 19:13:16 -05:00
badge.jsx chore: shadcn/ui component updates (batch) 2026-06-07 14:29:09 -05:00
button.jsx chore: shadcn/ui component updates (batch) 2026-06-07 14:29:09 -05:00
card.jsx chore: shadcn/ui component updates (batch) 2026-06-07 14:29:09 -05:00
checkbox.jsx chore: shadcn/ui component updates (batch) 2026-06-07 14:29:09 -05:00
collapsible.jsx chore: shadcn/ui component updates (batch) 2026-06-07 14:29:09 -05:00
confirm-dialog.jsx initial commit 2026-05-03 19:51:57 -05:00
dialog.jsx feat: framer-motion page transitions and UI polish 2026-06-07 15:14:09 -05:00
dropdown-menu.jsx v0.20.7: Keyboard navigation and ARIA accessibility 2026-05-10 00:18:36 -05:00
input-dialog.jsx initial commit 2026-05-03 19:51:57 -05:00
input.jsx chore: shadcn/ui component updates (batch) 2026-06-07 14:29:09 -05:00
label.jsx chore: shadcn/ui component updates (batch) 2026-06-07 14:29:09 -05:00
save-status.jsx feat(settings): auto-save preferences with live save status (batch 0.39.0) 2026-06-12 02:08:42 -05:00
select.jsx chore: shadcn/ui component updates (batch) 2026-06-07 14:29:09 -05:00
separator.jsx chore: shadcn/ui component updates (batch) 2026-06-07 14:29:09 -05:00
sonner.jsx v0.24.3: Session fixes, activity log corrections, UI polish 2026-05-11 13:39:48 -05:00
switch.jsx initial commit 2026-05-03 19:51:57 -05:00
table.jsx feat: framer-motion page transitions and UI polish 2026-06-07 15:14:09 -05:00
tabs.jsx chore: shadcn/ui component updates (batch) 2026-06-07 14:29:09 -05:00
theme-toggle.jsx chore: shadcn/ui component updates (batch) 2026-06-07 14:29:09 -05:00
tooltip.jsx chore: shadcn/ui component updates (batch) 2026-06-07 14:29:09 -05:00