BillTracker/client
null a0a8579a08 refactor(tracker): shared useTogglePaid mutation hook — finish Tracker mutations (F1)
Toggle paid/unpaid was duplicated across the desktop and mobile rows (optimistic
flip + Undo/paid toasts + refresh). Extracted into a shared useTogglePaid()
React Query mutation hook: the caller keeps the instant local optimistic flip,
the hook rolls it back on error and invalidates the tracker/badge caches on
settle. isPending replaces the desktop row's local loading state (badge spinner
+ un-pay confirm dialog). With useQuickPay (P3), both core Tracker write actions
are now idiomatic useMutation hooks living in one place.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-03 21:18:18 -05:00
..
components refactor(tracker): shared useTogglePaid mutation hook — finish Tracker mutations (F1) 2026-07-03 21:18:18 -05:00
contexts theme correctness 2026-05-28 01:30:40 -05:00
hooks refactor(tracker): shared useTogglePaid mutation hook — finish Tracker mutations (F1) 2026-07-03 21:18:18 -05:00
lib refactor(tracker): consolidate isPaidStatus + rowOutstanding + toast gap (T5) 2026-07-03 18:36:30 -05:00
pages feat(tracker): prefetch adjacent month on nav hover for instant switching (P2) 2026-07-03 20:58:23 -05:00
public/img refactor: component splits, PWA support, CommandPalette 2026-05-28 20:53:22 -05:00
App.jsx feat(query): global background-refetch error toast (P1) 2026-07-03 20:56:31 -05:00
api.js feat(data): "Erase my data" danger zone (Batch 5) 2026-07-03 15:21:07 -05:00
index.css feat(settings): safe-to-spend toggle, move notifications from Profile to Settings, fix dark-mode readability 2026-06-12 01:52:48 -05:00
main.jsx v0.24.3: Session fixes, activity log corrections, UI polish 2026-05-11 13:39:48 -05:00