M1: marking a bill paid/unpaid flips the row instantly via local optimistic state (cleared when fresh data arrives, rolled back on error) on both desktop and mobile rows, instead of waiting for the server round-trip. M2: bank sync (Tracker) and the bill-modal Sync use sonner toast.promise — one toast transitioning loading -> done -> error, replacing the manual spinner-flag + separate success/error toasts. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| components | ||
| contexts | ||
| hooks | ||
| lib | ||
| pages | ||
| public/img | ||
| App.jsx | ||
| api.js | ||
| index.css | ||
| main.jsx | ||