BillTracker/client/components
null 1f18a720c4 refactor(ts): convert all UI primitives + ThemeContext to TSX (B2)
Foundational for phase B: the ui/* primitives were untyped .jsx, and TS infers
React-19 ref-as-prop components as *requiring* a ref, so every consumer errored.
Converted all 22 ui primitives (button, input, card, dialog, select, table,
dropdown-menu, tabs, badge, checkbox, switch, tooltip, separator, label,
Skeleton, collapsible, alert-dialog, sonner, save-status, theme-toggle,
input-dialog, confirm-dialog) using ComponentProps<'el'> / ComponentProps<typeof
Radix.X> + VariantProps for cva components — refs now optional, event params
typed. Also converted ThemeContext.tsx (createContext(null) made useContext's
post-guard return `never`, so setTheme was uncallable — fixed with a typed
context value) and three tracker cells (EditableCell/NotesCell/
LowerThisMonthButton) that consume the branded TrackerRow.

Added a shared errMessage(unknown) helper to utils (strict catch → unknown);
usePaymentActions reuses it. TrackerRow gains monthly_notes + amount_suggestion
(real server fields).

typecheck 0, lint 0 errors (42 warns), build green, 48 client tests. NOTE: the
e2e auth-setup probe is currently red on an unrelated, pre-existing
release-notes-modal dismissal race (reproduces on the last known-good commit;
the a11y snapshot shows these converted primitives rendering correctly) —
investigating separately.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-03 22:57:22 -05:00
..
admin fix(bank-sync): admin config, matching, and worker updates 2026-06-07 19:41:17 -05:00
bill-modal refactor(bill-modal): extract TemplateSection (BM2, 7/n) 2026-07-03 19:23:57 -05:00
data fix(client): resolve all 13 exhaustive-deps warnings (R2b) 2026-07-03 19:47:14 -05:00
layout feat(nav): surface Data in the primary app menu (IMP-IA-01) 2026-07-03 12:50:07 -05:00
snowball refactor(client): single source of truth for money formatting (IMP-CODE-01) 2026-07-03 12:46:22 -05:00
tracker refactor(ts): convert all UI primitives + ThemeContext to TSX (B2) 2026-07-03 22:57:22 -05:00
transactions refactor(client): single source of truth for money formatting (IMP-CODE-01) 2026-07-03 12:46:22 -05:00
ui refactor(ts): convert all UI primitives + ThemeContext to TSX (B2) 2026-07-03 22:57:22 -05:00
BillHistoricalImportDialog.jsx fix: historical import loading state, remove stray catalog export 2026-06-06 23:17:08 -05:00
BillMerchantRules.jsx refactor(client): single source of truth for money formatting (IMP-CODE-01) 2026-07-03 12:46:22 -05:00
BillModal.jsx refactor(client): remove orphaned dead logic flagged by ESLint (R2c) 2026-07-03 19:51:21 -05:00
BillRulesManager.jsx feat: bill rules manager page, merchant re-normalization, match suggestion scoring fix, cleanup pruning 2026-06-04 20:45:11 -05:00
BillsTableInner.jsx refactor(client): single source of truth for money formatting (IMP-CODE-01) 2026-07-03 12:46:22 -05:00
CalendarFeedManager.jsx fix(ui): calendar settings improvements 2026-06-07 16:52:50 -05:00
CommandPalette.jsx feat(data): actionable badges, health dots, at-a-glance stats, palette links (Batch 2) 2026-07-03 15:05:25 -05:00
ErrorBoundary.jsx v0.19.2: add React Error Boundaries for crash recovery 2026-05-09 18:33:02 -05:00
IncomeBreakdownModal.jsx refactor(client): single source of truth for money formatting (IMP-CODE-01) 2026-07-03 12:46:22 -05:00
MarkdownText.jsx initial commit 2026-05-03 19:51:57 -05:00
MobileBillRow.jsx refactor(client): remove orphaned dead logic flagged by ESLint (R2c) 2026-07-03 19:51:21 -05:00
PageLoader.jsx v0.20.1: code splitting, version badge on roadmap, roadmap nav link 2026-05-09 22:01:19 -05:00
PageTransition.jsx chore(client): update PageTransition spacing 2026-06-09 20:51:32 -05:00
RecentlyDeletedBillsDialog.jsx feat(bills): "Recently deleted" restore view for the 30-day window (IMP-UX-01) 2026-07-03 12:56:45 -05:00
ReleaseNotesDialog.jsx 0.34.3 2026-05-31 15:06:10 -05:00
SearchFilterPanel.jsx fix(tracker): search filter and bucket improvements 2026-06-07 17:33:31 -05:00
StatusBadge.jsx style: stronger late/missed payment visibility 2026-05-28 23:42:46 -05:00
SubscriptionCatalogSection.jsx feat: dedicated subscription catalog page, evidence badges, price display in recommendations 2026-06-06 20:44:54 -05:00
SummaryCard.jsx style: global readability/theme pass 2026-05-28 23:18:14 -05:00