BillTracker/client/hooks
null 4af738f947 feat(ts): type the shared Category API response (A4)
Adds Category (+ CategoryBillSummary) to @/types and wires categories/
createCategory/updateCategory. Category has no money field of its own (budgets
live on the spending endpoints); the nested per-bill total_paid is a raw SQL sum,
so it's deliberately left unbranded. With categories now typed, useSpending
Categories drops its `any` cast and dead d.categories branch.

Category, Bill, Payment, and the Tracker envelope are the cross-cutting types
used by many components — worth defining upfront. The remaining single-consumer
page responses (summary, analytics, spending, snowball, subscriptions, bank
ledger) are typed alongside their page conversions in phase B, where the exact
fields consumed are visible (more accurate than a speculative interface).

typecheck 0, build green, 48 client tests.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-03 22:27:08 -05:00
..
useAuth.jsx fix(client): resolve all 13 exhaustive-deps warnings (R2b) 2026-07-03 19:47:14 -05:00
useAutoSave.test.jsx feat(settings): auto-save preferences with live save status (batch 0.39.0) 2026-06-12 02:08:42 -05:00
useAutoSave.ts refactor(ts): convert small hooks + version to TypeScript (TS8) 2026-07-03 22:01:30 -05:00
usePaymentActions.ts refactor(ts): convert the API client to TypeScript (TS9) 2026-07-03 22:09:04 -05:00
useQueries.ts feat(ts): type the shared Category API response (A4) 2026-07-03 22:27:08 -05:00
useSearchPanelPreference.ts refactor(ts): convert small hooks + version to TypeScript (TS8) 2026-07-03 22:01:30 -05:00